2012-08-27 62 views
0

我有一個網站,加載項目和使用jquery無限滾動插件加載更多的項目作爲用戶滾動。無限滾動JavaScript已經開除

當用戶將鼠標懸停在某個項目上時,會在該項目上顯示更多小格子。簡單。懸停時顯示哪些div取決於用戶在哪個頁面上,因此他們依賴於知道他們在哪個頁面上。我用一個簡單的變量來排序。

我使用以下js來決定顯示哪些div。例如,從主頁

<script> 
    $(".list_item_image").mouseenter(function() { 
    $(this).children(".gl_view2").show(); 
    $(this).children(".gl_relist").show(); 
    }); 
    $('.list_item_image').mouseleave(function() { 
    $(this).children(".gl_view2").hide(); 
    $(this).children(".gl_relist").hide(); 
    }); 
</script> 

的div(gl_view2 & gl_relist)的最初裝船但display:none;

現在,這個js加載到頁腳,以確保有問題的div後的。

可以說我有無限滾動設置爲一次

這一切能夠完美地(意思上的mouseenter應顯示/疊加的div,顯示)前15項更新15項,但經過該項目加載,但mouseenter根本不工作了。我猜這是因爲js已經加載,並且當下一個項目加載到頁面時,js沒有任何影響。

要加載與無限滾動的下一個項目,我使用:

<nav id="page_nav"><a href="/pages/infinScrollGather.html?page_offset=2&currentpage=homepage"></a></na‌​v> 

我也試着在每個項目後加載JS,但仍然只適用於第15

我也嘗試過,但這根本沒有工作:

$("body").on("mouseenter", ".list_item_image", function() { 
... 
}); 

$("body").on("mouseleave", ".list_item_image", function() { 
... 
}); 

有沒有人遇到過這樣的事情?任何想法修復?

+0

你的插件仍然會對'href'中的url進行ajax調用以獲取接下來的15個項目嗎?你可以添加一個你從這個Ajax調用得到的響應樣本嗎? –

回答

1

你應該使用事件代表團on()方法,像這樣

$("body").on("mouseenter", ".list_item_image", function() { 
    ... 
}); 

$("body").on("mouseleave", ".list_item_image", function() { 
    ... 
}); 

這將通過AJAX附上您的處理程序也對後來的DOM注入新的元素

只有當你使用的是舊版本的jQuery的使用delegate()on()否則

+0

這是不工作的現在我害怕 - 無限滾動不使用ajax,但使用

+0

@DarrenSweeney,你可以詳細說明你的意思是「沒有加載使用AJAX」。請分享無限加載的工作代碼。如果它適用於前15張圖像而不是後15張,通常意味着需要使用事件代表團。另外,請詳細說明什麼不起作用。 –

+0

@AmithGeorge - 感謝您的幫助,更新後的問題 –

0

固定(我希望如此反正)

看來js缺少包裹:$(document).ready(function(){ ... });

感謝您的一切幫助。