0

我有以下 jQuery 代码。我想做的是执行一个 if 语句来查看$("#div3").slideToggle("slow"); 存在 - 如果是,则不执行它。基本上,在页面视图期间,从这个级别开始的代码会多次运行。所以如果#button被点击,在父“点击功能”被点击多次后,#div3会切换多次。我找到了其他解决方法,例如取消绑定元素。但是,由于各种原因,我不能这样做或其他解决方法,因为它会影响我的其他代码。在我展示的代码中,还有比这一个方法更多的方法。有没有办法检查$("#div3").slideToggle("slow"); 当前页面中已经存在?谢谢!

$('#button').click(function() {
$("#div3").slideToggle("slow");
});
4

3 回答 3

1

您可以使用以下方法检查函数是否存在:

$("#div3").slideToggle == null

特别是您可以检查事件是否绑定:

$("#div3").data("events").click == null

或者,您可以像这样向 $('#div3') 添加一个新属性:

$("#div3").clickEventHasBeenAdded = true;
if(!$("#div3").clickEventHasBeenAdded) {
  //Do something
}
于 2012-09-05T13:20:51.180 回答
0

试试这个

HTML

<div>
    <input type="submit" value="submit" id="button">
    <div id="div1">item 1</div>
    <div id="div2">item 2</div>
    <div id="div3">item 3</div>
    <script type="text/javascript">
      $('#div3').slideToggle("slow");
    </script>
</div>

JS代码

$('#button').click(function() {
    if($('#div3').slideToggle("slow")!=null){
       alert('true');  
    } else{alert('false');}
});

http://jsfiddle.net/e3aHc/3/

于 2012-09-05T13:30:11.947 回答
0

使用 jQuery 的one()方法。

$(document).one('click', '#button', function() {
    $("#div3").slideToggle("slow");
});
于 2012-09-05T15:34:46.680 回答