这里我正在做一个基本的触发器示例,但jquery无法执行它。我知道jquery在这种触发器方面存在一些问题,但是没有相同的解决方案。
代码演示:jsfiddle
答案 0 :(得分:1)
jQuery或trigger
没有问题。
要让jQuery触发您的链接, jQuery需要知道您首先为链接分配点击处理程序:
$('#link').click(function(){
window.location = this.href;
});
<强> Working Example 强>
答案 1 :(得分:1)
// you have to assign a click event handler for anchor tag
$('#link').on('click', function() {
window.location = this.href;
});
$('#btn').click(function(){
$('#link').trigger('click'); // or $('#link').click();
alert("I am alerting but link is not triggered");
});
单击不是锚定标记的默认行为。因此,如果您想要执行某些操作,则必须先分配单击事件处理程序以先锚定,然后触发该事件。一个重要的想法是,在通过jquery触发任何事件之前,jquery应该告知该事件。
<强> DEMO 强>
$('#link').on('click', function() {
window.open(this.herf,this.target);
});
<强> DEMO 强>
答案 2 :(得分:1)
要触发点击对象,只需执行以下操作:
$('#link').click();
这只有在click()函数已经被jQuery绑定的情况下才有效,但可能就是你要找的东西。
否则,如果您尝试使用javascript打开新窗口,请使用window.open('url','_blank','width=100,height=100');
而不是其他人发布的window.location
,而不会在新的目标窗口中打开。
除了上面示例中的width
和height
之外,还可以为打开窗口设置更多属性。
答案 3 :(得分:0)
重要的是要记住,click()不会触发链接上的默认行为,即使没有其他任何东西阻止它。所以你不能单独使用click()来模拟用户点击链接并被带到另一个网址。
这就是为什么你需要将一个事件处理程序附加到link
以处理click事件
$('#link').click(function(){
// navigate to page
});