2011-09-02 109 views
1

我有一個頁面,其產生一系列按鈕,像這樣在PHP代碼:(在循環中)捕捉嵌套按鈕點擊

echo "<input type=\"button\" event='$eventID' id=\"sendsomeone\" value=\"Send a family member\"/>"; 
echo "<span id='$eventID'></span>"; 

然後,我必須的jquery其中捕獲這些點擊,並且還創建了一個按鈕:

$('input:button').click(function() { 
    $(this).next("span").append('You clicked this button!'); 
    $(this).next("span").append('<input type=\"button\" event=' + eventID + ' id=\"submitbutton\" value=\"Send\"/>'); 
    $('#submitbutton').click(function() { 
    } 
} 

我的目標是正確捕捉頁面上的所有按鈕點擊。 (不管他們被點擊的順序,PHP生成的按鈕都應該以一種方式運行,次按鈕應該都是不同的方式)

在上面的代碼中,它起初可以正常工作,讓你點擊按鈕併爲每個按鈕創建輔助按鈕。但是,一旦你點擊其中一個輔助按鈕,它就會開始表現得很奇怪。點擊第二個按鈕後,然後/ any /點擊執行#submitbutton的代碼。

我需要在這裏使用某個類嗎?如果是這樣,一個例子會很好。什麼會使這項工作?

+1

要附加有相同ID「提交按鈕」每一個按鈕被點擊時的DOM元素應該有一個元素相同的ID,類似於php生成的按鈕,因爲它可以給出任意錯誤 – Pradeep

+0

正如Pradeep所說:$(this).next('span')。children('input')。click(function(){ ... }而不是$('#submitbuton'),並且不需要插入按鈕上的id。 –

回答

1

你不需要追加按鈕然後選擇它。您可以在一個jQuery對象創建輸入要素,然後只是綁定到對象單擊事件,像這樣:

$('input:button').click(function() { 
    var span = $(this).next("span"); 
    span.append('You clicked this button!'); 
    $('<input type=\"button\" event=' + eventID + ' value=\"Send\"/>') 
    .appendTo(span) 
    .click(function() { 
     //do stuff here 
    }); 
});