我将jQuery升级到1.9.1,但我的脚本有问题



我曾尝试编辑此脚本以适应jQuery 1.9.1标准,但它仍然不起作用。我的代码低于

$(document).on('each', 'a.delete', function(index, element) {
$(element).click(function() {
alert('here');
});
}); 

它只是不能在控制台中正常工作而没有错误。但如果我删除on方法,我就可以在1.3.2版本上使用它。

试试这个

$('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');
});

无需循环遍历所有锚标记,您只需通过定位锚标记的类来使用事件委派,如下所示。这是更高效、更少的代码和最佳实践。

$('a').on('click','.delete', function() {
alert('here');
});

试试这个:

$(document).ready(function(){
$("a.delete").click(function(){
alert("here");
});
)};

终于解决了这个问题。以一种非常简单的方式。虽然我从一些帖子中得到了一些想法,但这些想法对我来说并不完美。

$(document).on('click','a.delete',function() {
alert('here');
});

没有语法错误,但您的代码不起作用,因为each不是要从函数处理的有效事件;所以它永远不会被发射。

您可以使用jQueryon:

将一个或多个事件的事件处理程序函数附加到选定的元素。

,并为所有匹配的元素附加一个单击处理程序。

代码:

$('a.delete').on('click',function() {
alert('here');
});

演示:http://jsfiddle.net/IrvinDominin/67DNx/

或者,如果您的元素是动态添加的,您可以使用事件委派:

大多数浏览器事件都是从最深处冒泡或传播的,文档中发生事件的最内部元素(事件目标)一直到正文和文档元素。在Internet中Explorer8及更低版本,一些事件(如更改和提交)没有原生bubble,但jQuery将其修补到bubble并创建一致的跨浏览器行为。

如果选择器被省略或为null,则事件处理程序被称为直接或直接绑定。每次事件时都调用处理程序发生在选定的元素上,无论是直接发生在元素或来自子代(内部)元素的气泡。

当提供选择器时,事件处理程序称为委托。当事件直接发生在绑定元素,但仅适用于匹配选择器。jQuery从事件目标向上弹出事件气泡连接到处理程序所在的元素(即最内部最外面的元素),并运行该元素上的任何元素的处理程序与选择器匹配的路径。

代码:

$(document).on('click', 'a.delete', function () {
alert('here');
});

演示:http://jsfiddle.net/IrvinDominin/67DNx/1/

最新更新