2013-02-04 22 views
0

這是我的代碼,我一直在確定問題時非常沮喪。

我試圖用

$('[isEditButton="true"]').on('click', function(){ codes }) 
or 
$('table tr td').on('click', '[isEditButton="true"]' , function(){ codes }) 

但兩者產量意外的結果,編輯按鈕只能點擊一次。

我搜索了jquery文檔,並使用了所謂的Delegated events,但是,仍然沒有工作,編輯按鈕被點擊一次,也是新注入的按鈕不能自動附加點擊事件。

我在線代碼

http://jsfiddle.net/dennisboys/mAjmU/2/

任何人都可以給我到底是怎麼回事了一些三分球。我對這個問題真的很瘋狂。預先感謝任何幫手!真的需要你們!

+0

你的小提琴似乎在Chrome是工作的罰款對我來說,你可以告訴究竟是不是在你的提琴爲你工作? – Nelson

+2

您可能想知道,使用類名通常比選擇自定義屬性的選擇器快得多。 – jfriend00

回答

1

[isEditButton]您的[isEditButton]元素正在動態添加,因此您需要使用on和委託處理程序,並且該父選擇器可用於DOM加載。你的第二個例子幾乎解決了這個問題,除了table tr td元素也被動態添加。試試這個:

$('#address_list').on('click', '[isEditButton="true"]', function() { 
    // rest of your code... 
}); 

Updated fiddle

+0

謝謝你Rory!這是解決方案!謝謝! – Dennisboys

0

我這樣做

$(document).on('click', '[isEditButton="true"]', function() {})

似乎正常工作。

http://jsfiddle.net/mAjmU/6/

+0

雖然這會起作用,但這正是'live()'用來做什麼的原因,以及爲什麼它被棄用。您應該附加到最近的可用父元素,而不是「文檔」。 –

+0

謝謝科爾比!你的代碼也可以工作!但我只能給出一個正確的答案,這次我給了羅裏。但再次感謝科爾比! – Dennisboys

-2

你爲什麼不利用這個

if (isset($_POST['isEditButton'])){ 
    //do some codes 
} 
else{ 
    //do this 
} 
+0

因爲這是PHP和OP使用JavaScript? –

相關問題