[英]mouseover, mouseout, click event handler not firing
这是代码-
setEvents:function(a, b){
if(b) {
$('#id').mouseover(function(){
console.log('mouse over')
})
$('#id').mouseout(function(){
console.log('mouseout')
})
$('#id').click(function(){
console.log('click')
})
}
}
执行此函数后,我希望相应的处理程序将在事件上触发。 但这没有发生。 但是,如果我将dbugger放入方法中,并在附加后触发处理程序,则它会起作用。 那就是我在方法内部的时候。 但是,一旦执行该方法,它将不起作用。
您必须将该函数绑定到一个对象,然后必须对已声明的函数进行调用才能注册#id
元素的事件处理程序:
var handler = {
setEvents:function(a, b){
if(b) {
$('#id').mouseover(function(){
console.log('mouse over')
})
$('#id').mouseout(function(){
console.log('mouseout')
})
$('#id').click(function(){
console.log('click')
})
}
}
}
handler.setEvents(a, b);
试试这个... jsFiddle演示
HTML(示例):
<div id="id">lala (with #id)</div>
<br/>
<div>lele (without #id)</div>
JS:
var setEvents = function(a,b){
if(b){
$('#id').mouseover(function(){
console.log('mouse over');
});
$('#id').mouseout(function(){
console.log('mouseout');
});
$('#id').click(function(){
console.log('click');
});
}
}
$(function(){
setEvents(1,1);
});
您没有发布完整的代码“如何调用setEvents”。 但是我认为也许在DOM准备就绪时您没有调用它。
$( document ).ready(function() {
// Call setEvents
});
希望它会有所帮助,如果它不起作用,请发布更多代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.