2011-10-01 37 views
6

Cách gỡ bỏ jScrollPane bằng cách tiêu diệt. Xin vui lòng bạn có thể cho một ví dụ đơn giản cho đoạn mã sau:Tiêu diệt jScrollPane

$(document).ready(function() { 
    $(".div1").jScrollPane(); 
}); 

<div class="div1">Some text...</div> 

Trả lời

0

Bạn cần phải gọi jScrollPaneRemove() trên thùng sơn ví dụ: $ jScrollPaneRemove(); ('myownscrollpane.').

+0

tôi nghĩ rằng jScrollPaneRemove() đã bị xóa do v2 – shr3jn

+0

có nó đã được gỡ bỏ trong v2 .. nếu bạn đang sử dụng 1.2 thì đây có thể giúp đỡ. –

+0

làm thế nào để bạn sử dụng tiêu diệt() ?? – shr3jn

1

Các jScrollPaneRemove() chức năng cũ nhìn một cái gì đó như thế này:

$.fn.jScrollPaneRemove = function() { 
    $(this).each(function() { 
    $this = $(this); 
    var $c = $this.parent(); 
    if ($c.is('.jScrollPaneContainer')) { 
     $this.css(
      { 
       'top':'', 
       'height':'', 
       'width':'', 
       'padding':'', 
       'overflow':'', 
       'position':'' 
      } 
     ); 
     $this.attr('style', $this.data('originalStyleTag')); 
     $c.after($this).remove(); 
    } 
    }); 
} 

Như bạn có thể thấy điều này loại bỏ các css, hay đúng hơn là đặt nó không có gì, và reset thẻ phong cách với kiểu dáng ban đầu. Vấn đề là originalStyleTag cũng được lấy ra, nhưng nó được sử dụng để tìm kiếm một cái gì đó như thế này:

$this.data('originalStyleTag', $this.attr('style')); 

Vì vậy, nó là cơ bản một cách để lưu trữ các phong cách cũ trước khi JScrollPane được kích hoạt và nộp đơn lại họ khi JScrollPane được lấy ra. Có rất nhiều thay đổi trong phiên bản mới và tôi không biết liệu phương pháp này có hoạt động hay không, nhưng có vẻ như cách để làm là lưu trữ các kiểu cũ trước khi chạy jScrollPane, bằng không bất kỳ css nào được đặt bởi jScrollPane, và thiết lập bak css cho các kiểu cũ để làm cho nó giống như trước jScrollPane.

Có vẻ như rất nhiều việc phải làm, và tôi sẽ cân nhắc việc thử gỡ bỏ, trống rỗng, tách hoặc bất kỳ thứ gì khác trên các thùng chứa khác nhau được kết hợp với jScrollPane, và nếu tất cả đều thất bại, hãy thử làm cho hàm trên hoạt động trong tập lệnh của bạn. Tất cả những gì bạn thực sự cần làm là lấy các kiểu cũ trong một mảng dữ liệu trước khi chạy jScrollpane, và sau đó xem nếu hàm remove cũ vẫn hoạt động.

11

Để tiêu diệt một thể hiện của JScrollPane (v2):

var element = $('.div1').jScrollPane({}); 
var api = element.data('jsp'); 
api.destroy(); 
Các vấn đề liên quan