我试图在新选项卡中打开一个URL,而不是弹出窗口.我已经看到相关的问题,其中的回答看起来像:
window.open(url,'_blank');
window.open(url);
Run Code Online (Sandbox Code Playgroud)
但是它们都没有为我工作,浏览器仍然试图打开一个弹出窗口.
似乎我无法正确理解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(){...})
但没有成功.
我想模拟点击一个锚标记,其中包含正确的目标处理等所有额外内容.
对于锚点的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,但我不确定它处理目标属性有多好,因为我之前没有使用它.
我正在开发一个 Rails 4 应用程序。我需要使用 javascript(或 jQuery)触发链接中的点击。我认为:
<%= link_to t('.fixture'), fixture_manager_tournament_path(format: :js), remote: true, id: 'fixture-link' %>
Run Code Online (Sandbox Code Playgroud)
这会产生:
<a id="fixture-link" data-remote="true" href="/manager/tournaments/1/fixture.js">Fixture</a>
Run Code Online (Sandbox Code Playgroud)
请注意remote: true
. 当我单击链接时,这工作正常,但我需要通过 js 模拟单击。我试过:
$('#fixture-link').click();
$('#fixture-link').trigger('click');
$('#fixture-link').trigger('click.rails');
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作。提前致谢!
编辑
@RustComet Comet 它应该替换我的一个 div 的 HTML ......
@RichPeck 我的视野太大了。然后,为了避免长时间的渲染,我试图通过 JS 加载部分。我已经使用此信息:https : //stackoverflow.com/a/15174908/3893506来实现这一目标。
我的视图有各种选项卡,所有选项卡都是通过 JS 加载的(一个除外)。然后我向路由添加了一个额外的参数,以便直接访问所需的选项卡。所以我可以去/tournament?active=fixture
看看固定装置。
问题是,选项卡处于活动状态,但内容不在此处。(当然,在我点击链接之前不会触发 ajax 请求和回调)。这就是为什么我试图在该链接上模拟点击并加载相应的选项卡。