以下是有问题的代码
$('.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中?
答案 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 */