使用OnClientClick =“TempDelete(); Delete();”调用多个Jquery函数是一种好习惯吗?我得到了这个选项,因为我希望TempDelete()在Delete()之前完成执行。当我在一个调用中使用这两个函数时:if(x> 0) {
TempDelete();
Delete();
执行中没有一致性,有时是Delete();在TemDelete()之前执行;这更像是一种建议,而不是任何建议。
答案 0 :(得分:0)
这应该没问题,因为处理程序代码内部是同步调用的。
我编写了一个小例子。在通过第二种方法“Delete()”添加div之前,计数器总是递增。
HTML:
<div id="callOnClick">Push me</div>
JS / jQuery的:
var counter = 0;
function TempDelete() {
counter++;
}
function Delete() {
$('#callOnClick').after('<div class="Delete">Delete: '+counter+'</div>');
}
$("#callOnClick").click( function (e) {
TempDelete();
Delete();
});
CSS:
div {
cursor: pointer;
width:200px;
height:20px;
background: gray;
}
.Delete {
width:100px;
height:20px;
color:white;
background: green;
}
http://jsfiddle.net/61hzv0v2/1/
也许你的代码中有两个事件监听器?
希望它有所帮助。
答案 1 :(得分:0)
首先,您应该在javascript中添加事件侦听器,而不是在标记中添加
$(function(){ // or $(document).ready()
$('#callOnClick').on('click', function(){
TempDelete();
Delete();
});
});
您还应该查看$.when()
和$.then()
方法以及$.Deferred()
对象。
$.when(TempDelete).then(Delete);
您还应遵循函数的javascript约定:构造函数的第一个大写字母
function Person(name, age){
this.name = name;
this.age = age;
}
以及方法或函数的第一个小写字母:
function getStuff(obj){
return obj.property;
}
var obj = {
hello : function(stuff){
alert(stuff);
}
};