我想使用jScrollPane的scrollToElement
(API link)滾動到最接近的div實例。
我試圖使用jQuery的$(this)
和closest()
來形成將通過傳遞到scrollToElement
的變量。
,但我認爲無論我執行$(this)
不正確,或這樣的變量是不是因爲它不觸發滾動操作可接受的參數類型。
的錯誤信息是:
Uncaught TypeError: Cannot read property 'top' of undefined
如何使用$(this)
和closest()
形成通過傳遞給scrollToElement
變量?
的jsfiddle
包括例如工作和非工作參數的:
http://jsfiddle.net/rwone/bUbm8/
HTML
<div id="main_content">
<div class="click_me">CLICK ME</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<a class="target">target</a>
</div>
的jQuery
function initScrollPane(){
var jScrollPaneSettings = {
hijackInternalLinks: true,
animateScroll: true,
animateDuration: 600,
contentWidth: '0px'
};
var mainContent = $('#main_content')
mainContent.jScrollPane(jScrollPaneSettings);
var apiMainContent = mainContent.data('jsp');
apiMainContent.reinitialise();
$(document).on("click",".click_me", function(e) {
e.preventDefault();
// DOESN"T work
// var myVar = $(this).closest(".target");
// DOES work
var myVar = $(".target:first");
//apiMainContent.scrollToElement(".target");
apiMainContent.scrollToElement(myVar);
});
}
initScrollPane();
編輯:
這也是我的理解是closest()
可以搜索down
這就是爲什麼我用每以下鏈接特定方法的樹,但也許這種理解是不正確的:
https://stackoverflow.com/a/5139438/1063287