难以理解为什么我的函数被调用两次。
我正在尝试检测何时调用单选按钮(intRev_yes),检查div是否为空,向下滑动另一个div,然后调用一个动态创建日期字段的custome函数。
if(this.id=="intRev_yes"){
if($('div#mainField').is(':empty')){
$('.intRevSections').slideDown('slow',function(){
current=-1;
addIrField();
});
}
}
当我在每个阶段发出警报时,在结束之后(即addIrField()),脚本似乎返回到slideDown()部分并重新调用addIrField()。我无法理解为什么,没有循环。 current
用作日期字段的索引。
答案 0 :(得分:1)
你可能是从一个泡泡的Dom事件中调用它。请参阅http://en.wikipedia.org/wiki/DOM_events以检查是否属实。
答案 1 :(得分:1)
另一个案例是:
如果您有两个具有类名.intRevSections
的元素,则slideDown会运行两次,并且回调会触发两次......
希望这有帮助,思南。
答案 2 :(得分:0)
找出为什么你有两个div(如果你从JS创建它们,另一个函数也可以运行两次)
您可能还想修复代码,以便即使您有两个div也只使用一个div
$('.intRevSections:first').slideDown('slow',function(){
current=-1;
addIrField();
});
答案 3 :(得分:0)
试试这个:
if (this.id == "intRev_yes") {
if ($('div#mainField').is(':empty')) {
$('.intRevSections').slideDown('slow', function(event) {
event.stopPropagation();
current = -1;
addIrField();
});
}
}
答案 4 :(得分:0)
Jquery animate完全适合我
$('.intRevSections:first').slideDown('slow',function(){
complete: addIrField();
});