我有一个通过菜单导航功能提交表单的 jQuery 函数:
$(function () {
$('#sidebarmenu1 a').on('click', function () {
var url = $(this).attr('href');
$('#myform').attr('action', url);
$("#myform").submit();
if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; }
})
});
本节:
if (event.preventDefault)
{ event.preventDefault(); }
else
{ event.returnValue = false; }
防止侧边栏按钮的默认操作(我认为-对此仍然很陌生),即简单地导航到页面。
以这种方式编写是为了让 IE 满意,因为没有为 IE 定义 preventDefault(可能在那里使用了不正确的术语,但 IE 不喜欢 preventDefault。)
然而现在这在 Firefox 中引发了一个错误,因为(正如我在其他堆栈问题上所读到的)事件不是为 FF 全局定义的!我收到以下错误:
ReferenceError:未定义事件
现在根据这个堆栈问题: event is not defined in FireFox, but ok in Chrome and IE
在 IE 和 Chrome 中,事件解析为 window.event。Firefox 没有此属性,而是通过将事件作为参数传递给事件处理函数来提供事件。jQuery 通过在所有浏览器中提供事件对象参数为您抽象出这种差异。
但我以为我在这里使用的是 jQuery,但仍然遇到问题。
抱歉,如果我犯了基本错误,请自学 js 和 jQ。非常感谢任何帮助,谢谢!