javascript - .click() 的行为不一致?

标签 javascript jquery

当我在控制台中包含 jQuery 并针对 Google.com 运行此代码段时,应该发生的是编号标记出现在所有 anchor 元素旁边。效果很好。

但是当您单击这些标签时,它应该就像您单击每个标 checkout 现在其左侧的元素一样。它们中的大多数都有效——重定向到新页面的直接 anchor ,效果很好。

但是您会看到一个,“图像” anchor 旁边的小方 block 图像,它不是直接 anchor ,而是上面有一个点击事件,它以一个小的弹出窗口显示其他应用程序- up 窗口,这就是问题所在。

如果我给它一个 id 并在控制台中直接在其上使用 .click(),它就可以完美运行。但是使用这段代码.... .click() 根本不起作用!我似乎无法确定原因。

var n = 1;
$('a').each(function(){
    //create and place numbered tag elements-- works fine
    var id = n;
    var a = $(this).offset();
    $('body').append('<span class="numTag" id="' + id + '" style="background:white; border: 1px solid black; font-size: 10pt; position:absolute; z-index:999;">' + id + '</span>');
    $('#'+id).css({left: a.left - 25, top: a.top});

    //create click event on each tag-- doesn't quite completely work
    var self = this;
    $('#'+id).click(function(){
        self.click();
    });
    n++;
});

请注意,这仅适用于 Chrome;它是扩展的一部分。其他浏览器在这里无关紧要。

最佳答案

根据问题下 EranH 的评论,此解决方案非常有效。我不能说我明白为什么,但你明白了。

Notice that if you use setTimeout(function() { self.click(); }, 10); it works. I'm guessing it has something to do with you using click inside click.

关于javascript - .click() 的行为不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578615/

相关文章:

javascript - 字符串长度条件不适用于 webhook

jquery - 使用ajax后查找id

javascript - 使用 jQuery Ajax 进行批处理

jquery - 如何从 flask 中的 'ImmutableMultiDict'获取数据

javascript - 如何用 Jest 模拟 uuid

javascript - 浏览器返回后 jquery Get 不会触发

javascript - AJAX查询后格式化字段

javascript - 为每个帖子添加可扩展的文本框

javascript - 通过对数组进行排序判断数组是否有重复元素

javascript - 使用 Javascript/Jquery 获取计算机名称