如果页面上有多个按钮,Jquery对话框将不工作
我的网页上发生了一些奇怪的事情 我想在单击按钮时添加一个确认jquery对话框。问题是…我在页面上多次使用该按钮,每个按钮都有其id,并且是由php创建的,因此页面上可以有2,3,4,5个按钮 按钮如下所示:如果页面上有多个按钮,Jquery对话框将不工作,jquery,jquery-ui,jquery-ui-dialog,Jquery,Jquery Ui,Jquery Ui Dialog,我的网页上发生了一些奇怪的事情 我想在单击按钮时添加一个确认jquery对话框。问题是…我在页面上多次使用该按钮,每个按钮都有其id,并且是由php创建的,因此页面上可以有2,3,4,5个按钮 按钮如下所示: <a href="#" id="confirm" onclick="addlist(<?php echo $v['id'];?>);return false;"><img src="img/item_add.png" alt="add"
<a href="#" id="confirm" onclick="addlist(<?php echo $v['id'];?>);return false;"><img src="img/item_add.png" alt="add" width="100" height="46" /></a>
问题是,我的jquery代码运行得很好,但只适用于第一个按钮、第二个按钮、第三个按钮……等等
这里有我的例子:
我想让对话框对每个按钮都起作用。
问题在哪里
提前谢谢你 这是因为所有按钮都具有相同的id。html中元素的id应该是唯一的 您可以让所有人都像我一样拥有相同的类使用类或使用不同的id,如: 或使用类: 每个项目的id都应该是唯一的。。但您可以尝试使用on来逃避,尽管不推荐使用: 特定元素的id在整个页面上必须是唯一的。。。。 如果不是,则只处理第一个元素。。。。 解决方案: 为所有按钮指定一些类,而不是按类名指定进程id e、 g:
对于元素和单击函数,您可以使用类而不是ID
<a class="confirm" href="javascript:;">Confirm 1</a>
<a class="confirm" href="javascript:;">Confirm 2</a>
...
$('.confirm').click(function() {
$('#dialog').dialog('open');
return false;
});
});
谢谢像魅力一样工作。这一点对你来说很重要,但公平地说,我会接受第一个发布解决方案的人的回答:谢谢!像魅力一样工作。你是第一个有这个想法的人,所以你是赢家。非常感谢你!谢谢正如你所说,我可以用类来代替id.Point,但公平地说,我会接受第一个发布解决方案的人的回答:在你的示例中工作,但不是在我的页面上:|奇怪。但是,更改类的id更容易、更好。无论如何,谢谢你;给你一分,谢谢!这就是解决办法:指向你!
$('#confirm1, #confirm2').click(function() {
$('#dialog').dialog('open');
return false;
});
});
$(document).on('click','#confirm', function() {
$('#dialog').dialog('open');
return false;
});
});
<a class="temp" href="#" id="confirm" onclick="addlist(<?php echo $v['id'];?>);return false;">
<img src="img/item_add.png" alt="add" width="100" height="46" />
</a>
$(document).ready( function(){
$('#dialog').dialog({
autoOpen: false,
width: 600,
buttons: {
"Ok": function() {
$(this).dialog("close");
},
}
});
$('.temp').click(function() {
$('#dialog').dialog('open');
return false;
});
});
<a class="confirm" href="javascript:;">Confirm 1</a>
<a class="confirm" href="javascript:;">Confirm 2</a>
...
$('.confirm').click(function() {
$('#dialog').dialog('open');
return false;
});
});