Javascript jquery单击事件在单击之前激发
我正在创建一个小的todo应用程序,遇到了一个问题,看起来警报消息在单击事件触发之前运行。看起来事件根本没有注册。有人能告诉我为什么会这样吗Javascript jquery单击事件在单击之前激发,javascript,jquery,angularjs,node.js,Javascript,Jquery,Angularjs,Node.js,我正在创建一个小的todo应用程序,遇到了一个问题,看起来警报消息在单击事件触发之前运行。看起来事件根本没有注册。有人能告诉我为什么会这样吗 (function() { 'use strict'; var MyTodo = { init: function() { this.cacheDom(); this.bindEvent(); this.addTask(); },
(function() {
'use strict';
var MyTodo = {
init: function() {
this.cacheDom();
this.bindEvent();
this.addTask();
},
cacheDom: function() {
this.$title = $('#inpTitle');
this.$date = $('#inpDate');
this.$description = $('#inpDescription');
this.$addTaskBtn = $('#addTaskBtn');
this.$pending = $('#pending');
},
addTask: function() {
if (!this.$title.val()) {
alert('please enter title');
return;
}
var value = '<ul class="todo-task" id="todoList" draggable="true"><li><strong>' + this.$title.val() + '</strong></li>' +
'<li>' + this.$date.val() + '</li>' +
'<li>' + this.$description.val() + '</li></ul>';
this.$pending.append(value);
// empty inputs
this.$title.val('');
this.$date.val('');
this.$description.val('');
},
bindEvent: function() {
this.$addTaskBtn.on('click', this.addTask.bind(this));
}
};
MyTodo.init();
})();
(函数(){
"严格使用",;
变量MyTodo={
init:function(){
this.cacheDom();
this.bindEvent();
这个.addTask();
},
cacheDom:function(){
此.$title=$(“#inpttitle”);
这个.$date=$(“#inpDate”);
此.$description=$(“#inpsdescription”);
这个.$addTaskBtn=$(“#addTaskBtn”);
这个.$pending=$('#pending');
},
addTask:function(){
如果(!this.$title.val()){
警报(“请输入标题”);
返回;
}
var value='- “+this.$title.val()+”
- '+
“
- ”+此.$date.val()+“
”+
“- ”+这个.$description.val()+”
”;
此.$pending.append(值);
//空输入
本.$title.val(“”);
本.$date.val(“”);
本.$description.val(“”);
},
bindEvent:function(){
this.$addTaskBtn.on('click',this.addTask.bind(this));
}
};
MyTodo.init();
})();
调用this.addTask()
在init
中,将调用init
方法,因此它将alert()
。从init()
(函数(){
"严格使用",;
变量MyTodo={
init:function(){
this.cacheDom();
this.bindEvent();
},
cacheDom:function(){
此.$title=$(“#inpttitle”);
这个.$date=$(“#inpDate”);
此.$description=$(“#inpsdescription”);
这个.$addTaskBtn=$(“#addTaskBtn”);
这个.$pending=$('#pending');
},
addTask:function(){
如果(!this.$title.val()){
警报(“请输入标题”);
返回;
}
var value='- “+this.$title.val()+”
- '+
“
- ”+此.$date.val()+“
”+
“- ”+这个.$description.val()+”
”;
此.$pending.append(值);
//空输入
本.$title.val(“”);
本.$date.val(“”);
本.$description.val(“”);
},
bindEvent:function(){
this.$addTaskBtn.on('click',this.addTask.bind(this));
}
};
MyTodo.init();
})();代码>
悬而未决的
进行中
完整的
添加任务
添加任务
明确任务
调用this.addTask()
在init
中,将调用init
方法,因此它将alert()
。从init()
(函数(){
"严格使用",;
变量MyTodo={
init:function(){
this.cacheDom();
this.bindEvent();
},
cacheDom:function(){
此.$title=$(“#inpttitle”);
这个.$date=$(“#inpDate”);
此.$description=$(“#inpsdescription”);
这个.$addTaskBtn=$(“#addTaskBtn”);
这个.$pending=$('#pending');
},
addTask:function(){
如果(!this.$title.val()){
警报(“请输入标题”);
返回;
}
var value='- “+this.$title.val()+”
- '+
“
- ”+此.$date.val()+“
”+
“- ”+这个.$description.val()+”
”;
此.$pending.append(值);
//空输入
本.$title.val(“”);
本.$date.val(“”);
本.$description.val(“”);
},
bindEvent:function(){
this.$addTaskBtn.on('click',this.addTask.bind(this));
}
};
MyTodo.init();
})();代码>
悬而未决的
进行中
完整的
添加任务
添加任务
明确任务
我已经试过了,但没有帮助。它在页面加载时运行一次。this。$addTaskBtn=$(“#addTaskBtn”)
设置为首先调用cacheDom
。OP正在调用addTask
,原因是触发警报的原因。它似乎只应该在单击时调用event@PatrickEvans我只是做了些改变,仍然在页面加载上启动。我试过了,但没有帮助。它在页面加载时运行一次。this。$addTaskBtn=$(“#addTaskBtn”)
设置为首先调用cacheDom
。OP正在调用addTask
,原因是触发警报的原因。它似乎只应该在单击时调用event@PatrickEvans我只是做了更改,但仍然会在页面加载时触发