jquery滑块不适用于jquery-1.6!

时间:2011-05-13 00:52:28

标签: jquery jquery-ui slider slide uislider

此滑块代码适用于较旧版本的jquery,例如jquery-1.5。但是当我尝试将它与最新版本的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) });
}

知道我做错了什么吗?你能告诉我如何解决它吗?

感谢。

3 个答案:

答案 0 :(得分:1)

jQuery 1.6

  

从jQuery 1.6开始,使用.attr()方法   返回undefined的属性   没有设定。此外,   .attr()不应该在plain上使用   对象,数组,窗口或   文献。检索和更改DOM   属性,使用.prop()方法。

这是一个有效的fiddle

答案 1 :(得分: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) });
}

答案 2 :(得分:0)

我认为你应该忽略版本1.6并直接转到1.6.1。 根据jQuery博客:

从1.5.2更新到1.6.1时,您不必更改任何属性代码。

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