2014-09-30 31 views
1

我用下面的代碼中多次執行,jQuery的單擊事件setInterval函數

setInterval(loadnew, 5000); 

function loadnew() { 
    $(".lf-item .lf-item-inner .lf-item-link").load(); 
    $('.lf-item .lf-item-inner .lf-item-link').on('click', function() 
    { 
     alert('image'); 
    }); 
} 

爲.lf項.lf項-內.lf項目鏈接項目被加載時頁面滾動。所以我使用setinterval這個,但得到的結果多次像每隔5000毫秒創建一個圖像輸出時發生單擊事件它徹底的所有輸出值。

請運行並等待超過5000毫秒,然後單擊圖像。 以下鏈接:http://jsfiddle.net/g3fkL736/

任何人都可以幫我解決這個問題嗎?

+0

爲什麼每次都需要重新綁定點擊事件?您不是動態創建該元素,只是填寫內容。 – Barmar 2014-09-30 15:42:36

+0

是否需要在_loadnew_函數中設置click事件?您正在多次設置一個活動。你可以使用unbind或off,但在你的情況下這不是一個好習慣。 – 2014-09-30 15:42:44

+0

感謝barmar和馬里奧arague爲您的輸入 – Moorthi 2014-09-30 16:29:23

回答

0

你可以試試這個,其實loadnew()呼籲屢所以你需要刪除lisener像下面的事件regiester事件之前。

請注意off("click")

function loadnew() { 

     $(".lf-item .lf-item-inner .lf-item-link").load(); 

     $('.lf-item .lf-item-inner .lf-item-link').off("click").on('click', function() { 
      alert('image'); 
     }); 
} 
+0

真的非常感謝很多raja ....現在修復 – Moorthi 2014-09-30 16:26:18

0

使用取消綁定將刪除事件。

function loadnew() { 
$(".lf-item .lf-item-inner .lf-item-link").load(); 
    $('.lf-item .lf-item-inner .lf-item-link').unbind('click'); 
    $('.lf-item .lf-item-inner .lf-item-link').on('click', function() 
    { 
     alert('image'); 
    }); 
0

將事件綁定放在間隔函數之外,那裏就不需要了。

$('.lf-item .lf-item-inner .lf-item-link').on('click', function() 
{ 
    alert('image'); 
}); 

setInterval(loadnew, 5000); 

function loadnew() { 
    $(".lf-item .lf-item-inner .lf-item-link").load(); 
} 
0

你一遍遍設置單擊處理...

相反,你可以綁定.on()處理程序文件,並選擇添加爲第二paramenter,所以即使它在創建處理程序時不存在,它將在運行時處理。

setInterval(loadnew, 5000); 
function loadnew() { 
    $(".lf-item .lf-item-inner .lf-item-link").load(); 
} 

$(document).on('click', '.lf-item .lf-item-inner .lf-item-link', function() 
{ 
    alert('image'); 
});