我正在用jQuery编写一些代码并试图添加一个onclick
事件监听器。当我运行我的代码时,事件监听器运行一次,但不重复。为什么会这样?
如果我用addEventListener('click'...)
替换它,它可以正常工作。
$(function(){
var url = "https://www.bensound.com/bensound-img/jazzcomedy.jpg";
var doSomething = {
clickedNow: function(){
alert("Clicked ok now");
}
};
$('#click-me').attr('src',url);
$('#click-me').onclick = doSomething.clickedNow();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<figure>
<img id="click-me" alt="An image went missing here">
<figcaption><figcaption>
</figure>
答案 0 :(得分:2)
$('#click-me').onclick = doSomething.clickedNow();
在这里设置onclick事件等于函数doSomething.clickedNow的结果,这不是你想要的。
您要做的是为click事件添加一个事件监听器并在那里执行您的功能。
试试这个:
$('#click-me').click(function(){
doSomething.clickedNow();
});
更好的是使用&#34; on&#34;像这样
$( "#click-me'" ).on("click", function() {
doSomething.clickedNow();
});
答案 1 :(得分:1)
#include "../A/A.h"
&#13;
$(function(){
var url = "https://www.bensound.com/bensound-img/jazzcomedy.jpg";
var doSomething = {
clickedNow: function(){
alert("Clicked ok now");
}
};
$('#click-me').attr('src',url);
$('#click-me').click(function(){
doSomething.clickedNow();
});
});
&#13;
您正在使用jquery,而在jquery中有<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<figure>
<img id="click-me" alt="An image went missing here">
<figcaption><figcaption>
</figure>
个东西。正确的语法在上面的代码中。检查一下。它正在工作。
答案 2 :(得分:1)
onClick
是您尝试添加到jQuery选择器的JavaScript函数。如果您真的想这样做,那么您可以通过将其更改为:
$('#click-me')[0].onclick = doSomething.clickedNow;
使用像他们的答案中建议的Code Lover这样的jQuery点击功能可能会更好。
$(function(){
var url = "https://www.bensound.com/bensound-img/jazzcomedy.jpg";
var doSomething = {
clickedNow: function(){
alert("Clicked ok now");
}
};
$('#click-me').attr('src',url);
$('#click-me')[0].onclick = doSomething.clickedNow;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<figure>
<img id="click-me" alt="An image went missing here">
<figcaption><figcaption>
</figure>
&#13;