当我在控制台中包含 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/