元素上的jQuery绑定事件失败
jQuery bind event on element fails
我们使用的是jQuery 2.1.4,并编写了自己的JavaScript类来处理事件。这是一个非常简单的";应用程序";。它所做的只是负责提交表格。在此之前,它会处理数据。
我们在呈现页面时调用的初始方法:
OWebForm.prototype.init = function(){
console.log("init Method called");
...
$("#submit_message").on("click", this._submit);
console.log($("#submit_message"));
...
}
OWebForm.prototype._submit = function(e){
e.preventDefault();
console.log("_submit Method called");
...
}
一旦按钮";CCD_ 1";则应该调用OWebForm
类的_submit
方法。当查看控制台中的元素时,我可以看到它在加载页面时没有绑定到任何东西。因此,一旦单击按钮,代码就不会执行。
在HTML中,我有以下代码:
<script type="text/Javascript">
var _oWebForm = new OWebForm("0bcfwqx23xv02dfaqfujdqyafziic4b07uxkkg1y6lkof7x0px0vjm2tpaik2l2rmlrhnjya0bvctnpq26dqcom1ij5zpibodke3rs1z4f2syllthtj0kpl3p4vrw0vw");
_oWebForm.init();
</script>
根据我所了解的文档,函数在绑定到元素事件之前必须存在。处理对象时不是这样吗?我该怎么解决这个问题?
您的脚本是在加载DOM之前执行的,因此元素还不存在,jQuery选择器也不匹配任何内容,因此没有元素绑定到它们的点击处理程序。您需要在$(document).ready()
中用调用init()
方法。
在文档"就绪"之前,无法安全地操作页面。jQuery会检测到这种就绪状态。包含在$(document).ready()中的代码只有在页面文档对象模型(DOM)准备好执行JavaScript代码后才会运行。
$(document).ready(function() {
var _oWebForm = new OWebForm("0bcfwqx23xv02dfaqfujdqyafziic4b07uxkkg1y6lkof7x0px0vjm2tpaik2l2rmlrhnjya0bvctnpq26dqcom1ij5zpibodke3rs1z4f2syllthtj0kpl3p4vrw0vw");
_oWebForm.init();
});
这对我有效:
var OWebForm = function(a){
};
OWebForm.prototype.init = function() {
alert("init Method called");
$("#submit_message").on("click", this._submit);
}
OWebForm.prototype._submit = function(e){
e.preventDefault();
alert("_submit Method called");
}
$(function() {
var _oWebForm = new OWebForm("0bcfwqx23xv02dfaqfujdqyafziic4b07uxkkg1y6lkof7x0px0vjm2tpaik2l2rmlrhnjya0bvctnpq26dqcom1ij5zpibodke3rs1z4f2syllthtj0kpl3p4vrw0vw");
_oWebForm.init();
});
<script src="http://code.jquery.com/jquery-1.11.3.js"></script>
<form id="myFrm">
<input type="text">
<input id="submit_message" type="submit" value="Click me To test">
</form>
您需要替换:
$("#submit_message").on("单击",this.submit);
带有:
$(document).on("单击","#submit_message",this.submit);
如果submit_message尚未加载!
相关文章:
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- 如何使用onclick事件触发此代码.我尝试过,但失败了
- jQuery:从点击事件传递变量值失败
- 当表单验证失败时,我将如何最好地处理下一个事件
- Angular JS,把json放到ng重复出一个事件失败
- 两个不同版本的 jQuery 导致事件侦听失败
- IE 焦点事件在 ajax 加载后随机失败
- 如何在node中编写事件发射器.js让你创建一个函数“myFunction”,然后在运行时调用成功或失败
- jQuery AJAX 请求事件 - 完成,失败,成功
- 重新加载后,onclick 事件失败
- Javascript (jQuery) 事件失败.我该如何解决这个问题
- Node JS HTTP Server request.on('data') 事件失败
- 元素上的jQuery绑定事件失败
- 使用.live()和item.length绑定事件失败
- 获取鼠标移动事件失败
- 用于postMessage事件失败的Jasmine spy()
- Fullcalendar eventDrop回调函数从全天事件到限时事件失败
- React-router:从路由器获取参数,监听事件失败
- 为什么此单击事件失败
- JavaScript onMouseOver事件失败