为什么这样的基本脚本不起作用

时间:2012-06-15 08:47:49

标签: javascript jquery jquery-ui

这里我正在做一个基本的触发器示例,但jquery无法执行它。我知道jquery在这种触发器方面存在一些问题,但是没有相同的解决方案。

代码演示:jsfiddle

4 个答案:

答案 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,而不会在新的目标窗口中打开。

除了上面示例中的widthheight之外,还可以为打开窗口设置更多属性。

答案 3 :(得分:0)

重要的是要记住,click()不会触发链接上的默认行为,即使没有其他任何东西阻止它。所以你不能单独使用click()来模拟用户点击链接并被带到另一个网址。

这就是为什么你需要将一个事件处理程序附加到link以处理click事件

$('#link').click(function(){
    // navigate to page
});