几分钟前我正在查看一些代码,这让我很困惑。
$("nav a").mouseenter(function() {
audio.play();
});
我知道'$'是jQuery for document.getElementById(“”);和mouseEnter是'nav a'的事件处理程序,但是如何将该函数分配给该事件?它没有任何赋值运算符'='?
我现在不太了解jQuery,因为我正试图彻底解决JavaScript问题。因此,当我将代码修改为纯JavaScript时,它似乎不起作用......
document.getElementById("playAudio").onclick(function () {
audio.play();
});
我不明白为什么?我认为这是相同的代码?...
答案 0 :(得分:1)
mouseenter是一个功能。类似于:
var element = {elm: document.getElementById('test')};
element.mouseenter = function(func) {
element['elm'].addEventListener('mouseenter', func);
};
element.mouseenter(function() {});
答案 1 :(得分:0)
您将函数对象(使用函数表达式创建)传递给jQuery.mouseenter
,jQuery从那里获取它。
仅供参考,您尝试下载的部分内容是文档对象模型(DOM)。您正在尝试使代码纯JavaScript + DOM API。学习JS和DOM的基础是很好的,但要注意jQuery可以消除浏览器DOM实现中的许多不一致,例如注册事件监听器。
答案 2 :(得分:0)
传递函数,函数是匿名的(没有名字)。
你也可以这样做:
function foo() { audio.play(); }
$('nav a').mouseenter(foo);
答案 3 :(得分:0)
美元符号不仅限于getElementById()
,它是jQuery对象,在您的情况下,调用nav
元素然后抓取{{1}内的a
标记}}。在获取元素之后,它会匿名附加事件,允许函数在事件被触发时运行。