我将jQuery升级到1.9.1,但我遇到了脚本问题

时间:2014-01-07 13:32:31

标签: javascript jquery

我曾尝试编辑此脚本以使用jQuery 1.9.1标准来缓和,但它仍无法正常工作。我的代码在

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

它只是在控制台中没有错误时不起作用。但是如果我删除了on方法,我就可以使用1.3.2版本了。

5 个答案:

答案 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');
});

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

答案 4 :(得分:0)

最后我能够解决这个问题。以一种非常简单的方式。虽然我从一些帖子中得到的想法对我来说并不是很完美。

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