jquery按钮单击触发器仅使用第一个按钮

jquery按钮单击触发器仅使用第一个按钮,jquery,Jquery,为什么只触发第一个按钮onclick?当我点击其他人时,他们不会触发任何事件,控制台中也没有错误 我有: $(文档).ready(函数(){ var name_of_sender=“”; var text_of_sender=“”; 变量$dialog=$('') .html('每次都会显示此对话框!') .对话({ 自动打开:错误, 标题:“基本对话框” }); $(“#编辑#文本”)。单击(函数(){ var butName=$(this.attr(“name”); var user_id

为什么只触发第一个按钮onclick?当我点击其他人时,他们不会触发任何事件,控制台中也没有错误 我有:


$(文档).ready(函数(){
var name_of_sender=“”;
var text_of_sender=“”;
变量$dialog=$('')
.html('每次都会显示此对话框!')
.对话({
自动打开:错误,
标题:“基本对话框”
});
$(“#编辑#文本”)。单击(函数(){
var butName=$(this.attr(“name”);
var user_id=butName.split(“”)[1];
警报(用户标识);
name_of_sender=$('#username_'+user_id).html();
text_of_sender=$('#text_'+user_id).html();
警报(发送方的名称);
警报(发送方的文本);
$dialog.dialog('open');
//防止默认操作,例如,跟踪链接
返回false;
});
});
测试
阿斯达斯达斯德
2012-09-27
217.xx.xx.6
编辑
测试
阿斯达斯达斯德
2012-09-27
217.xx.xx.6
编辑
测试
阿斯达斯达斯德
2012-09-27
217.xx.xx.6
编辑

ID应该是唯一的。。使用ID选择器-它将仅选择使用该ID找到的第一个元素-因此事件处理程序仅绑定到第一个按钮 对于您的代码,您可以将其更改为

$("button[name^=id_]").click(function() {

或者将您的id更改为class并使用class selector,您应该拥有元素的唯一id,您可以使用带有通配符的名称来绑定单击所有按钮

    $("input[type=button][id^=id_").click(function() {

            var butName = $(this).attr("name");
            var user_id = butName.split("_")[1];
            alert(user_id);
            name_of_sender = $('#username_'+user_id).html();
            text_of_sender = $('#text_'+user_id).html();

            alert(name_of_sender);
            alert(text_of_sender);

            $dialog.dialog('open');
            // prevent the default action, e.g., following a link
            return false;
        });

好的,上面的例子似乎对一些人有效,但对我无效

这样,名为“编辑”的按钮的工作原理相同:

$('#Edit').live('click', function () {

});

您的HTML无效,因为您多次使用相同的
id
。这也是jQuery不能选择多于第一个实例的原因。
$('#Edit').live('click', function () {

});