2011-09-02 81 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 
    }); 
});