2017-03-03 136 views
0

我有一個使用ajax動態插入網頁的小部件,並將它自己的jquery放在標題中,一切正常。jQuery .on click動作元素僅適用於第一次

但是當該小工具我粘貼一些額外的腳本添加等待用戶輸入一些動態添加的元素,他們做的工作很好,但是裝載插件的元素最初只獲得與.click()事件而動感的元素做正確綁定工作,但只是第一次有一些非常奇怪的行爲,比如多次觸發點擊(通過我點擊的電話顯而易見),然後完全不再工作,這裏可能的原因是其他的常駐腳本網站搞亂了我的腳本還是其他的東西?

我使用的所有元素:

$('body').on('click', '.page_link', someFunction); 

以上沒有工作,所以我想這其中的工作如預期與預先加載的插件,但沒有這麼多的動態添加那些元素:

$('.page_link').click(someFunction); 
$('body').on('click', '.page_link', someFunction); 

任何幫助表示讚賞,謝謝。

+1

您可以創建一個小提琴例如鏈接,這樣我們就可以讓你知道添加到頁面的解決方案 –

+0

動態控制,一旦你的頁面加載和可用,直到你的頁面是沒有得到刷新。一旦你的頁面被回發或重新加載,你必須重新附加事件。最好的方法是你必須創建一個靜態父元素,並且必須將所有動態控件分配給它。你還必須確保重新附加事件,如parent.child.event = clickevent; –

+0

user3950705你檢查了評論和答案嗎? –

回答

1

對於jQuery的動態加載的元素,你需要重新應用事件(點擊)

在jQuery 1.7 jQuery.fn.on,您可以:

$(parentSelector).on(eventName, dynamicChild, function() {}); 

$(parentSelector)必須是非dyanamic元素 對於您可以使用,你追加動態元素

此前的jQuery 1.7,你可以使用body或父元素是使用活的():

$(selector).live(eventName, function(){}); 
0

您將不得不使用文檔全局變量來綁定單擊事件。請嘗試使用下面的代碼:

$(document).on('click', '.page_link', someFunction); 
+0

可能的重複,如果它不'從身體工作...它不會從文檔工作。 –

+0

以及它爲我工作。 :) – Santosh

相關問題