如何使用Jquery动态选择特定链接?
我正在尝试选择某个链接并打开一个对话框如何使用Jquery动态选择特定链接?,jquery,ruby-on-rails,jquery-ui,jquery-ui-dialog,Jquery,Ruby On Rails,Jquery Ui,Jquery Ui Dialog,我正在尝试选择某个链接并打开一个对话框 $('#edit').click(function(e) { var url = $(this).attr('href'); var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({ autoOpen: false, width: 520, modal: true, ope
$('#edit').click(function(e) {
var url = $(this).attr('href');
var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({
autoOpen: false,
width: 520,
modal: true,
open: function() {
return $(this).load(url + ' #content');
},
close: function() {
$('#dialog-form').remove();
}
});
dialog_form.dialog('open');
e.preventDefault();
});
在具有多个编辑链接的页面上
<a href="articles/edit/1" id="edit">edit</a>
<a href="articles/edit/2" id="edit">edit</a>
但该代码仅在只有一个编辑链接时有效
如何动态选择我单击的确切链接?首先,不要使用重复的ID属性-它们对于DOM中的每个元素都应该是唯一的。如果需要选择器,请改用类名:
<a href="articles/edit/1" class="edit">edit</a>
<a href="articles/edit/2" class="edit">edit</a>
ID属性必须是唯一的,这是无效的HTML。浏览器将始终在第一次出现时返回
您可以改用类名
<a href="articles/edit/1" class="edit">edit</a>
从HTML5开始,您还可以使用data-*属性。具有相同id的两个元素是无效的HTML。改用类。我不同意,但使用.on代替。单击此处没有好处我不知道为什么,但“on”不起作用,但“click”似乎与您提到的更改类的id一起起作用。@DanielSunYang您需要使用on,因为click正变得不受欢迎。更新您的jQuery版本,您就可以使用它了。@Alexander,因为将来他很可能希望访问动态添加的事件elements@hohner,您能否提供对的弃用通知的参考。单击?很抱歉,但我想你有点困惑,这已经奏效了,谢谢!你知道为什么霍纳的建议不起作用吗?使用on而不是click@DanielSunYang,您使用的是哪个版本的jQuery?无论如何,这个建议是毫无根据的,因为.click在内部使用.on。您可以使用.on进行事件委派,这显然不会发生在您的代码和他的回答上。啊,您是对的。我使用的是某人的示例应用程序,它有jQueryV1.6.1。感谢您的澄清。@DanielSunYang,您可以正常使用。单击,因为此速记应该使用推荐的方式将事件处理程序与当前版本绑定。虽然,升级jQuery总是被推荐的,但现在我陷入了从两个正确答案中选择的两难境地:D:,我为自己挖的洞。。。
<a href="articles/edit/1" class="edit">edit</a>
$('.edit').click(function(e) {
...
});