我正在使用一个使用JScroll的js文件。 jsp-scroll-y
事件的回调在以下函数中定义
function initWall() {
//callback from jqueryscrollpane
Scroll_TimeLine_Instance = function (event, scrollPositionY, isAtTop, isAtBottom){
//get more content
if (isAtBottom) {
GetMoreDate(objid, vwrsid, secid, orgid, incflwr, qty, mintlid, maxtlid, successGetTimeLineCallback, failureGetTimeLineCallback);
}
}();
}
定义了另一个函数,然后将此回调绑定到jsScroll
function reapplyScroll() {
Utilities.DestroyScrollBar($(_target).closest('.widgetBody'));
Utilities.ApplyScrollBar($(_target).closest('.widgetBody'), false, Scroll_TimeLine_Instance);
}
Utilities.ApplyScrollBar = function (element, showScrollBar, scrollCallback) {
$(element).jScrollPane({
horizontalGutter: 5,
verticalGutter: 5,
'showArrows': false
}).bind('jsp-scroll-y', scrollCallback);
if (!showScrollBar) {
$(element).find('.jspDrag').hide();
}
}
回调从未被调用,我发现这是因为它未定义。如果我删除了Immediate object initialization
();从函数创建之后一切正常。
任何人都能解释一下吗?我不明白为什么它被立即调用,所以我认为这是创建它的人的错误,我不知道为什么它会导致这个变量未定义?
答案 0 :(得分:0)
它是undefined
,因为函数(立即调用)不会return
任何值
所以这似乎确实是图书馆的 bug ..
最后删除();
,或者如果你想在那里调用它,只需在下一行中调用它
function initWall() {
//callback from jqueryscrollpane
Scroll_TimeLine_Instance = function (event, scrollPositionY, isAtTop, isAtBottom){
//get more content
if (isAtBottom) {
GetMoreDate(objid, vwrsid, secid, orgid, incflwr, qty, mintlid, maxtlid, successGetTimeLineCallback, failureGetTimeLineCallback);
}
}; /// this is assigning the function to our variable
Scroll_TimeLine_Instance (); // this is the invokation
}