2011-05-22 103 views
1

我在使用jQuery UI滑塊構件時遇到了一些問題。我可以讓滑塊本身工作,但不會滑過任何內容。您可以在這裏看到我正在處理的網站: jquery slider problemjQuery UI滑塊問題

我希望青色加邊框的div可以在處理程序中滑動時滑過,但我根本無法使其工作。這是我用此刻的標誌:

<div id="content-scroll" class="reference-scroller"> 
<div id="content-holder" class="reference-content"> 
    <div id="content-slider"></div> 
    <ul> 
    <li class="content-item">test1</li> 
    <li class="content-item">test2</li> 
    <li class="content-item">test3</li> 
    <li class="content-item">test4</li> 
    <li class="content-item">test5</li> 
    ..... 
    </ul> 
</div> 
</div> 

和滑塊插件啓動這樣的:

$("#content-slider").slider({ 
animate: true, 
change: handleSliderChange, 
slide: handleSliderSlide 
}); 

function handleSliderChange(e, ui) 
{ 
var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width(); 
$("#content-scroll").animate({scrollLeft: ui.value * (maxScroll/100) }, 1000); 
} 

function handleSliderSlide(e, ui) 
{ 
var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width(); 
$("#content-scroll").attr({scrollLeft: ui.value * (maxScroll/100) }); 
} 

有沒有人有這個建議? :-)任何輸入,非常感謝!

一切順利,

+0

HEJ BO - 你需要[驗證](http://validator.w3.org/check?uri=http%3A%2F%2Fwww.uconsult.dk%2Fforside.aspx&charset=%28detect+automatically%29&doctype=內聯&組= 0)你的HTML - 你有多個頭,如 – mplungjan 2011-05-22 15:53:19

+0

嗨mplungjan :)非常感謝 - 這是因爲我很懶,做了一些樣式的頭標籤。將確定。看看驗證它! – bomortensen 2011-05-22 16:00:59

回答

2

終於找到了破綻! :-)

的jQuery 1.6.1 ATTR()和道具()區分,所以我改變:

function handleSliderChange(e, ui) 
{ 
    var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width(); 
    $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll/100) }, 1000); 
} 

function handleSliderSlide(e, ui) 
{ 
    var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content- scroll").width(); 
    $("#content-scroll").attr({scrollLeft: ui.value * (maxScroll/100) }); 
} 

要:

function handleSliderChange(e, ui) 
{ 
    var maxScroll = $("#content-scroll").prop("scrollWidth") - $("#content-scroll").width(); 
    $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll/100) }, 1000); 
} 

function handleSliderSlide(e, ui) 
{ 
    var maxScroll = $("#content-scroll").prop("scrollWidth") - $("#content-scroll").width(); 
    $("#content-scroll").prop({scrollLeft: ui.value * (maxScroll/100) }); 
} 

而現在它只是因爲它應該!

+0

謝謝,你爲我節省了很多時間!當我升級到jquery的新版本時滑塊崩潰!再次感謝! – k25 2011-07-01 14:42:12