2011-05-13 86 views
1

這個滑動條代碼可以很好地適用於舊版本的jquery,比如jquery-1.5。但是,當我嘗試將它與最新版本的jquery - jquery-1.6整合時,它不能正常工作。jQuery的滑塊不適用於jquery-1.6!

您可以試試here - 當您沿着滑塊時,內容不會滾動。當您拖動並向前和向後移動內容時,內容應沿滑塊滾動。

下面是一些代碼,

function init_scrollbar() 
{ 
    //scrollpane parts 
    scroll_frame = $('#scroll-frame'); // scroll-frame 
    scroll_content = $('#scroll-content'); // scroll-content 
    scroll_location_pixel = 0; 
    original_location_scroll_handle = 0; 
    original_width_scroll_content = scroll_content.width(); 

    scrollbar = $('#content-slider').slider({ 
     min: 0, 
     animate: true, 
     create: on_scrollcreate, 
     change: on_scrollchange, 
     slide: on_scrollslide 
    }); 
} 

我認爲這是事件slide不起作用,這裏是代碼,

function on_scrollslide(event, ui) 
{ 
    var scroll_maximum = scroll_content.width() - scroll_frame.width(); 
    scroll_frame.attr({scrollLeft: ui.value * (scroll_maximum/100) }); 
} 

任何想法,我做了什麼錯?你能告訴我如何解決它嗎?

謝謝。

+0

要升級的任何緊迫的理由嗎? – alex

回答

1

jQuery 1.6對於:

在jQuery 1.6的,所述.attr()方法返回 未定義屬性,這些屬性 具有不已設置。另外, .attr()不應用於普通的 對象,數組,窗口或 文檔。要檢索和更改DOM 屬性,請使用.prop()方法。

這裏是一個工作fiddle

+0

非常感謝你幫助我! :-) – laukok

0

jQuery現在可以通過其新的.prop()方法正確區分屬性和屬性。

on_scrollslide功能,更改scroll_frame.attr({scroll_frame.prop({

function on_scrollslide(event, ui) 
{ 
    //var scroll_maximum = scroll_frame.attr("scrollWidth") - scroll_frame.width(); 
    var scroll_maximum = scroll_content.width() - scroll_frame.width(); 

     // change---vv 
    scroll_frame.prop({scrollLeft: ui.value * (scroll_maximum/100) }); 
} 
+0

非常感謝您的幫助! :-) – laukok

0

我認爲你應該忽略版本1.6並直接轉到1.6.1。 每個jQuery博客:

當從1.5.2更新到1.6.1時,你不應該改變任何屬性代碼。

來源: http://blog.jquery.com/

+0

謝謝你,克里斯! :-) – laukok