我正在尝试将一个事件附加到链接的点击处理程序。我可以通过href
元素选择元素,但是当我在Javascript控制台中输入以下代码时,会触发事件,而不是添加事件处理程序:
$('a[href="example.com"]')[0].click(console.log("Message"))
我已阅读the docs for .click(),其中声明使用参数调用.click
不应触发事件,并且不确定为什么会发生这种情况。
答案 0 :(得分:4)
您正在尝试拨打.click()
HTMLELement
并且不存在。
当您在[some number]
对象上jQuery
时,将返回相应的HTMLElement
。但.click()
是jQuery
的函数,而不是HTMLElement
的函数。您还应该将代码包装在匿名函数中。
这样做:
$('a[href="example.com"]').click(function(){
console.log("Message")
});
使用HTMLELement,您可以这样做:
$('a[href="example.com"]')[0].onclick = function(){
console.log("Message")
}
但我不推荐上述方法。只是说上面也存在。
答案 1 :(得分:2)
你忘记编写函数,需要在函数中包装代码。试试这个,
$('a[href="example.com"]').click(function(){console.log("Message")})
Click是一个jQuery事件,所以当你选择元素$时,它会返回jquery对象,你可以在该对象上调用更多的jquery事件。但是当你编写[0]
时,它会返回DOM元素,并且没有单击事件处理程序。