Javascript 尝试设置时意外触发。单击()处理程序
我正在尝试将事件附加到链接的单击处理程序。我可以通过元素的Javascript 尝试设置时意外触发。单击()处理程序,javascript,jquery,Javascript,Jquery,我正在尝试将事件附加到链接的单击处理程序。我可以通过元素的href来选择元素,但是当我在Javascript控制台中输入以下代码时,会触发事件,而不是添加事件处理程序: $('a[href=“example.com”])[0]。单击(console.log(“Message”)) 我已经通读了,其中说明调用。使用参数单击不应触发事件,并且不确定发生这种情况的原因。您正在尝试调用。不存在的HTMLELement的click() 在jQuery对象上执行[some number]操作时,将返回相应的
href
来选择元素,但是当我在Javascript控制台中输入以下代码时,会触发事件,而不是添加事件处理程序:
$('a[href=“example.com”])[0]。单击(console.log(“Message”))
我已经通读了,其中说明调用
。使用参数单击不应触发事件,并且不确定发生这种情况的原因。您正在尝试调用。不存在的HTMLELement
的click()
在jQuery
对象上执行[some number]
操作时,将返回相应的HTMLElement
。但是.click()
是jQuery
的函数,而不是HTMLElement
的函数。您还应该将代码包装在匿名函数中
这样做:
$('a[href="example.com"]').click(function(){
console.log("Message")
});
使用HtmleElement,您可以执行以下操作:
$('a[href="example.com"]')[0].onclick = function(){
console.log("Message")
}
但我不推荐上述方法。只是说上述情况也存在 您正试图调用。单击HTMLELement
的()
,该函数不存在
在jQuery
对象上执行[some number]
操作时,将返回相应的HTMLElement
。但是.click()
是jQuery
的函数,而不是HTMLElement
的函数。您还应该将代码包装在匿名函数中
这样做:
$('a[href="example.com"]').click(function(){
console.log("Message")
});
使用HtmleElement,您可以执行以下操作:
$('a[href="example.com"]')[0].onclick = function(){
console.log("Message")
}
但我不推荐上述方法。只是说上述情况也存在 如果忘记编写函数,则需要在函数中封装代码。试试这个
$('a[href="example.com"]').click(function(){console.log("Message")})
单击是jQuery的一个事件,所以当您选择element by$时,它返回jQuery对象,您可以对该对象调用进一步的jQuery事件。但是,当您编写[0]
时,它返回DOM元素,并且没有click事件处理程序。如果忘记编写函数,则需要在函数中包装代码。试试这个
$('a[href="example.com"]').click(function(){console.log("Message")})
单击是jQuery的一个事件,所以当您选择element by$时,它返回jQuery对象,您可以对该对象调用进一步的jQuery事件。但是当您编写[0]
时,它会返回DOM元素,并且没有click事件处理程序。Ah ok。我想我误解了JQuery选择器,我认为它的工作原理与getElementsByName相同,它返回一个必须从中选择的数组。为什么不推荐底部选项?是因为它可能会覆盖而不是附加事件处理程序吗?@wils484你说得对。但另一个原因是,当您加载jQuery时,您加载它是为了使您的工作更容易、更高效。那么为什么不在加载jQuery时使用它呢:)啊,好的。我想我误解了JQuery选择器,我认为它的工作原理与getElementsByName相同,它返回一个必须从中选择的数组。为什么不推荐底部选项?是因为它可能会覆盖而不是附加事件处理程序吗?@wils484你说得对。但另一个原因是,当您加载jQuery时,您加载它是为了使您的工作更容易、更高效。那么为什么不在加载jQuery时使用它呢:)