我有一个问题,通过jQuery伪造一个锚点击:为什么我的厚箱出现在我第一次点击输入按钮,但不是第二次或第三次?
这是我的代码:
<input onclick="$('#thickboxId').click();" type="button" value="Click me" />
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>
Run Code Online (Sandbox Code Playgroud)
当我直接点击链接时,它总是有效,但如果我尝试通过输入按钮激活厚箱,则无效.这是在FF.对于Chrome,它似乎每次都有效.任何提示?
有没有人知道在Prototype中触发事件的方法,就像使用jQuery的触发器函数一样?
我使用observe方法绑定了一个事件监听器,但我也希望能够以编程方式触发事件.
提前致谢
我想模拟点击一个锚标记,其中包含正确的目标处理等所有额外内容.
对于锚点的DOM对象似乎有一个"[click()] [3]"方法,但并非所有浏览器都支持它.Firefox抛出此错误:
错误:anchorObj.click不是函数
它在Opera 10和Konqueror上也很奇怪,当它在周围div的onclick处理程序中调用时会导致无限点击.我想只有IE8可以正常使用它.无论如何我不想要它,因为主流浏览器大多数都有问题.
我在Mozilla论坛中找到了Firefox的替代解决方案:
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
anchorObj.dispatchEvent(evt);
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎太丑陋了.我不知道它是多么兼容,我想尽可能避免编写特定于浏览器的代码.
我不能使用location.href = anchorObj.href; 因为它不处理"目标"属性.我可以根据目标值进行一些硬编码,但我也想避免这种情况.
有建议切换到JQuery,但我不确定它处理目标属性有多好,因为我之前没有使用它.
我一直在尝试使用jquery来触发点击.
我发现了触发点击,如下所示:$(button).trigger('click'); 不要关注hrefs.我一直试图通过触发提交按钮来提交ajax,但是没有去.
我知道我可以直接提交.但有没有办法触发按钮?谢谢.
html ×2
javascript ×2
jquery ×2
dom ×1
events ×1
onclick ×1
prototypejs ×1
thickbox ×1
triggers ×1