这是代码 -
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,并在连接后触发处理程序,它就可以工作。那是我在其工作的方法内部。但是一旦执行该方法,它就不起作用。
答案 0 :(得分:0)
您必须将该函数绑定到一个对象,然后必须调用声明的函数才能注册#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);
在这里,您可以查看完整的Demo on JSFiddle。
答案 1 :(得分:0)
试试这个...... jsFiddle Demo
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);
});
答案 2 :(得分:0)
您没有发布完整代码“如何调用setEvents”。但我想也许你在DOM准备就绪时没有调用它。
$( document ).ready(function() {
// Call setEvents
});
希望它有所帮助,如果它不起作用,请发布更多代码