触发单击jquery无法正常工作

我正在弄清楚为什么这个简单的脚本不起作用:

jQuery.noConflict(); jQuery(document).ready(function() { jQuery('.next_button a').trigger('click'); }); 

noConflict是必要的,因为我还在此页面中加载了prototype / scriptaculous。

如果我用另一个函数替换.trigger('click') (es: .css(...)这很有效。只有触发似乎破坏了。

如何通过jquery模拟锚点击? 查看此链接并查看Stevanicus的回答 。

$('a#swaswararedirectlink')[0].click();

您只能触发jQuery创建的单击。 这是jQuery可爱的小怪癖之一。

正如加里所回答的那样。 以下代码无效。

 $('#border_wrap').trigger('click'); $('#border_wrap').click(function(e){ console.log("clicked1"); }); 

但这会.. 🙂

 $('#border_wrap').click(function(e){ console.log("clicked1"); }); $('#border_wrap').trigger('click'); 

我认为这个演示不起作用但确实如此(Chrome 12)。 它将alert两条消息,每条消息对应一条消息。 一个是由jQuery创建的,一个是原生的,但我认为只能触发jQuery事件。

编辑:是的, click不跟随href

编辑2:因此,您想要手动触发的事件实际上是由Prototype轮播插件创建的事件。 对于下面的代码,我假设它是这个 。 如果是这种情况,为什么你不能只使用Prototype或本机使用fire …这样:

    Title        jQuery.noConflict(); function fakeClick(event, anchorObj) { if (anchorObj.click) { anchorObj.click() } else if(document.createEvent) { if(event.target !== anchorObj) { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var allowDefault = anchorObj.dispatchEvent(evt); // you can check allowDefault for false to see if // any handler called evt.preventDefault(). // Firefox will *not* redirect to anchorObj.href // for you. However every other browser will. } } }         

在此事件触发演示中有两个示例(一个已注释掉,但您可以切换相同的结果)。 一个来自Trigger,一个使用Prototype的事件 ,使用event.simulate.js ,一个使用来自如何模拟点击到锚标记的fakeClick()函数? 。 其中任何一个在Chrome 12中都适用于我。