我为客户创建了一个页面,我最初在Chrome中工作,忘了检查它是否在Firefox中运行.现在,我遇到了一个大问题,因为整个页面都基于一个在Firefox中不起作用的脚本.
它基于所有"链接",这些链接rel会导致隐藏和显示正确的页面.我不明白为什么这不适用于Firefox.
例如,页面具有id #menuPage,#aboutPage依此类推.所有链接都有以下代码:
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
Run Code Online (Sandbox Code Playgroud)
它在Chrome和Safari中完美运行.
这是代码:
$(document).ready(function(){
//Main Navigation
$('.menuOption').click(function(){
event.preventDefault();
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
// HIDES and showes the right starting menu
$('.all').hide();
$('.pizza').show();
// Hides and shows using rel tags in the buttons
$('.menyCat').click(function(event){
event.preventDefault();
var categori = $(this).attr('rel');
$('.all').hide();
$(categori).fadeIn();
$('html,body').scrollTo(0, categori);
});
});
Run Code Online (Sandbox Code Playgroud) 我想知道为什么以下代码在某些浏览器中有效?即使click()函数没有参数,但是event存在变量并且dosomething在事件触发器对象上调用方法?
$(<selector>).click(function () {
$(event.target).<dosomething>
});
Run Code Online (Sandbox Code Playgroud) 有什么区别:
function test (e) {
console.log("Event: ", e);
}
document.querySelector("button").onclick = test;Run Code Online (Sandbox Code Playgroud)
<button>Click!</button>Run Code Online (Sandbox Code Playgroud)
和:
function test () {
console.log("Event: ", event); // same as window.event
}
document.querySelector("button").onclick = test;Run Code Online (Sandbox Code Playgroud)
<button>Click!</button>Run Code Online (Sandbox Code Playgroud)
它们似乎返回完全相同的对象,甚至包含相同的timeStamp值,以毫秒为单位.
我经常看到代码使用第一个例子,使用e或evt,但第二个例子有什么问题?
据我所知,event是一样的window.event,这是一个全局变量,但什么是使用的目的e,如果event做同样的事情?