Javascript 仅对具有特定属性的元素单击运行函数
现在,我希望该函数仅在单击Javascript 仅对具有特定属性的元素单击运行函数,javascript,jquery,Javascript,Jquery,现在,我希望该函数仅在单击元素时运行,但它在每次单击时都会运行 (function($) { $(document).ready(function() { $('a').data('popup', 'true').click(function(e) { console.log($(this).data('popup')); e.preventDefault(); }); }); })(jQuery);
元素时运行,但它在每次
单击时都会运行
(function($) {
$(document).ready(function() {
$('a').data('popup', 'true').click(function(e) {
console.log($(this).data('popup'));
e.preventDefault();
});
});
})(jQuery);
获取/设置与元素关联的数据;它不会像您期望的那样过滤元素。实际上,您正在所有锚元素上设置一个键/值对数据,然后将事件侦听器附加到所有锚元素。换句话说,当您使用.data()
方法设置数据时,将返回原始jQuery对象(这意味着.click()
方法仍在将单击事件处理程序附加到所有原始选定的锚元素)
你在找一个新的工作。在这种情况下,选择器a[data popup=“true”]
将选择属性值为true
的锚元素
$('a[data-popup="true"]').click(function(e) {
console.log($(this).data('popup'));
e.preventDefault();
});
$('a[data-popup="true"]').click(function(e) {
console.log($(this).data('popup'));
e.preventDefault();
});
下面的代码将附加代码中所有现有链接的数据
$('a').data('popup', 'true').click(function(e)
你可以试试这个:
<a id="popid" data-popup="true"></a>
(function($) {
$(document).ready(function() {
$('#popid').click(function(e) {
console.log($(this).data('popup'));
e.preventDefault();
});
});
})(jQuery);
或
$('a[data-popup="true"]').click(function(e) {
console.log($(this).data('popup'));
e.preventDefault();
});