相关疑难解决方法(0)

jQuery.trigger('click')不起作用

似乎我无法正确理解jQuery触发器('click')功能.

有人可以告诉我为什么这个简单的代码不起作用以及如何解决?

HTML:

<a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a>
<span id="foo">Click me!</span>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

jQuery('#foo').on('click', function(){
    jQuery('#bar').trigger('click');
});
Run Code Online (Sandbox Code Playgroud)

演示:FIDDLE

我想要的是能够点击#foo(运行良好)并模拟#bar上的点击(完全忽略,没有任何错误消息).也试过jQuery(document).ready(function(){...})但没有成功.

html javascript jquery triggers eventtrigger

139
推荐指数
6
解决办法
20万
查看次数

如何模拟单击锚标记?

我想模拟点击一个锚标记,其中包含正确的目标处理等所有额外内容.

对于锚点的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,但我不确定它处理目标属性有多好,因为我之前没有使用它.

html javascript dom

45
推荐指数
4
解决办法
9万
查看次数

jQuery .click()在Safari中不起作用

我已经看过几个类似的帖子,其解决方案似乎对这些人有用,但我不能让它发挥作用.

我在我的项目中使用http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/.它在所有浏览器中都可以正常工作,但在Safari中,"浏览"按钮不会打开文件对话框.script.js中存在以下代码(包含在插件中):

$('#drop a').click(function(){
    // Simulate a click on the file input button
    // to show the file browser dialog
    $(this).parent().find('input').click();
});
Run Code Online (Sandbox Code Playgroud)

.click()不会在Safari中触发.我按照jQuery尝试了解决方案.click()适用于每个浏览器,但Safari和实现

 $('#drop a').click(function(){
    var a = $(this).parent().find('input');
    var evObj = document.createEvent('MouseEvents');
    evObj.initMouseEvent('click', true, true, window);
    a.dispatchEvent(evObj);
});
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误dispatchEvent is not a function.然后我对此做了一些研究,并尝试了jQuery.noConflict()路由,但这并没有解决错误.另外,我在主文件中使用了很多jQuery,并且我无法为整个页面激活noConflict()模式.也没有理由jQuery应该与任何东西发生冲突,因为我只使用jQuery和普通的javascript而且我没有使用像prototype或angular这样的东西.有人知道在Safari中模拟点击的另一种方法吗?

更新:仅供参考,我alert('test')在上述功能中添加了一个(在点击"浏览"时触发),我在Safari中获取警报,但它没有模拟文件输入元素的点击,即:它是没有打开文件对话框.

javascript safari jquery

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

javascript ×3

html ×2

jquery ×2

dom ×1

eventtrigger ×1

safari ×1

triggers ×1