我曾尝试编辑此脚本以使用jQuery 1.9.1标准来缓和,但它仍无法正常工作。我的代码在
之下$(document).on('each', 'a.delete', function(index, element) {
$(element).click(function() {
alert('here');
});
});
它只是在控制台中没有错误时不起作用。但是如果我删除了on方法,我就可以使用1.3.2版本了。
答案 0 :(得分:3)
试试这个
$('a.delete').each(function(index, element) {
$(element).click(function() {
alert('here');
});
});
简化您的代码
$('a.delete').on('click',function() {
alert('here');
});
如果他们动态创建,请尝试
$(document).on('click','a.delete',function() {
alert('here');
});
答案 1 :(得分:1)
无需循环遍历所有锚标记,您可以通过定位锚标记的类来使用事件委派,如下所示。这是更有效,更少的代码和最佳实践。
$('a').on('click','.delete', function() {
alert('here');
});
答案 2 :(得分:0)
试试这个:
$(document).ready(function(){
$("a.delete").click(function(){
alert("here");
});
)};
答案 3 :(得分:0)
没有语法错误,但您的代码不起作用,因为each
不是从函数处理的有效事件;所以它永远不会被解雇。
您可以使用jQuery on
:
将一个或多个事件的事件处理函数附加到 选定的元素。
并将点击处理程序附加到所有匹配的元素。
代码:
$('a.delete').on('click',function() {
alert('here');
});
演示:http://jsfiddle.net/IrvinDominin/67DNx/
或者,如果您的元素是动态添加的,您可以使用事件委派:
大多数浏览器事件从最深处传播或传播 文档中最里面的元素(事件目标) 一直到身体和文档元素。在互联网上 Explorer 8及更低版本,更改和提交等一些事件不会 原生泡沫,但jQuery修补这些泡沫和创建 一致的跨浏览器行为。
如果省略selector或为null,则将事件处理程序称为 直接或直接约束。每次事件都会调用该处理程序 发生在所选元素上,无论它是直接出现在 来自后代(内部)元素的元素或气泡。
提供选择器时,事件处理程序称为 授权。直接在事件发生时不会调用处理程序 绑定元素,但仅适用于后代(内部元素) 匹配选择器。 jQuery从事件目标起泡事件 到附加处理程序的元素(即最里面的) 最外面的元素)并为其中的任何元素运行处理程序 匹配选择器的路径。
代码:
$(document).on('click', 'a.delete', function () {
alert('here');
});
答案 4 :(得分:0)
最后我能够解决这个问题。以一种非常简单的方式。虽然我从一些帖子中得到的想法对我来说并不是很完美。
$(document).on('click','a.delete',function() {
alert('here');
});