mouseover、mouseout、click事件处理程序未启动
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上的完整演示
试试这个。。。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
});
希望它能有所帮助,如果它不起作用,请发布更多代码
相关文章:
- 从浏览器启动应用程序
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 使用重定向来启动应用程序,并且仍然停留在asp.net中的同一页面中
- $http.delete回调未在基本CRUD应用程序中启动
- Node.js应用程序-由NPM启动时的不同Node_ENV
- 如何启动我的WinJs应用程序在左边弹出
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在Chrome和Safari中启动Angular JS应用程序的差异
- 如何在启动时在PhoneGap应用程序中调用一些Objective C代码
- Apache Cordova:在不启动浏览器应用程序的情况下运行Cordova运行浏览器
- 捕获在Windows应用程序中启动其他应用程序的用户事件
- 如何在启动 Web 驱动程序实例之前通过命令行在 conf.js 中传递设备名称
- 事件侦听器,用于完全关闭后重新启动的应用程序
- IE窗口失去了对任何XMLHttpRequest启动Angular应用程序的关注
- Jquery事件处理程序未启动
- 启动时启动chrome应用程序
- 从任何浏览器启动程序/拨打电话
- AngularJS angular种子启动程序项目添加指令
- Throw nice "logged"在karmaJS浏览器启动程序中出现错误
- 启动程序web客户端