请原谅我的无知,我对 JavaScript 不太熟悉,并且已不再在公司工作的开发人员负责修复错误。
onclick
在 FireFox 中完美运行,但是在 IE 7 和 8(我们测试的唯一版本)中,它似乎贯穿 onclick
正常运行,然后将数据提交到 goStep3()
中的表单 URL ,贯穿每一个onclick
在页面上,带有 href="#"
然后最终提交错误信息,因为变量已被覆盖 50 次。
<a href="#" onclick="trackSponsor(62, 64265); goStep3(1896, 64265, 0); return false;">view</a>
编辑:
当我运行trackSponsor(62, 64265); goStep3(1896, 64265, 0); return false;
时在 IE8 的开发人员工具中,我收到一个在函数外部返回 false 的错误......删除它就可以正常工作了。
我认为是由该行引起的问题吗?
trackSponsor()
工作正常并返回 false
goStep3()
是一个相当大的函数,但是它的工作原理是从其中的 4 个其他函数中检索值,并将这些值分配给 theAction
中的 URL。
它通过编辑完成功能:
var yr = $("#find-yr").attr('value');
var me = $("#find-me").attr('value');
var mo = $("#find-mo").attr('value');
var keywords = $("#find-keywords").attr('value');
var theAction = PATH_BASE+'find/step3/'+p_term+'/'+p_id+'/'+p_l_id+'/';
document.forms['FindForm'].action = theAction;
document.FindForm.submit();
return true;
我尝试从此函数返回 false,并更改 document.FindForm.submit()
到 document.forms['FindForm'].submit()
的“正确”语法并且它仍然不会提交,直到运行完所有其他 onclick
页面上有 s。
提前致谢!
注释:
jQuery 也正在被使用。
Javascript 没有抛出任何错误。
这在 FireFox 中运行良好
我可以看到它经历了其他onclick
中的所有其他功能。使用开发人员工具并单步执行页面时,它不会提交 goStep3
的结果直到完成所有其他 onclick
页面上的功能。
最佳答案
“发布我之前的评论作为答案”
我看到很多 jQuery 都与属性选择器一起使用,所以请对照这些代码检查代码。
编辑:
我注意到你不熟悉 JavaScript...所以如果你不知道,jQuery 选择器将选择与某个“选择器过滤器”匹配的所有标签并对它们执行某个操作...所以如果有选择所有具有 href
属性(或者可能是它们之间的另一个公共(public)属性...)的 A 标记的选择器,那么这就是问题的原因。
编辑:-发布答案后-
很高兴您找到了答案...
虽然有点奇怪, 因为根据你的问题,它会经历“每个带有 href =“#”的元素 ...
但是根据 msdn ,事件冒泡只是将这些未处理的事件传递给父元素进行处理。不是通过“相似”标签:)
哦好吧..对于 IE 来说没有什么是合乎逻辑的
关于javascript - Onclick JavaScript 在 IE 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915390/