jQuery click事件在页面加载时立即触发,仅在IE8中触发

时间:2013-02-15 02:39:11

标签: javascript jquery redirect internet-explorer-8 click

以下是有问题的代码

$('.consejosTab').on("click", function(e){
    //window.location = 'http://encuentratrabajoonline.es/consejos/';
    console.log('Clicked' , e , this);
});

如果您在IE8中查看页面http://encuentratrabajoonline.es/,该页面将立即重定向到子域。似乎正在发生的是,不是将click事件绑定到元素,而是在consejosTab上调用click函数。我已经完成了一些初步测试,并且我已经注释掉了重定位,并在声明中放了一个console.log。我还确认没有其他点击功能正在运行并点击该元素。

除了页面上所有其他糟糕的标准之外(这只是我将要在此网站上进行清理的开始),我需要知道为什么这只发生在IE8中?

2 个答案:

答案 0 :(得分:0)

根据您使用的jQuery版本(希望是最新版本)而不是使用此构造:

$('.nav').on("click", function(e){
  // your code here
});

答案 1 :(得分:0)

我也在这方面挣扎了一段时间,发现我无意中调用了myfunction,但正如预期的那样better described in this SOF question。通过定义内联函数,它将自动执行。

以下三个语法行导致相同的问题(立即执行)

$('.consejosTab').on("click", function(e){ alert("I will execute immediately");});
$('.consejosTab').on("click",myFunc()); 
$('.consejosTab').click(myFunc());

解决方案是使用以下任一选项调用命名函数 - 请注意删除括号。传入' myFunc()'意味着返回一个值,传入myFunc'是对应该执行的函数的引用。

$('.consejosTab').on("click", mmyFunc); */ JS */
$('.consejosTab').click(myFunc); */ JQuery Shorthand */