我有以下jQuery代码。我要做的是执行一个if语句来查看 $(“#div3”)。slideToggle(“slow”); 是否存在 - 如果是,则不执行它。基本上,在此页面视图中,与此相关的代码会在不同时间运行。因此,如果单击#button,在多次单击父“click function”之后,#div3将多次切换。我找到了其他解决方法,例如取消绑定元素。但是,由于各种原因,我无法做到这一点或其他变通办法,因为它会影响我的其他代码。在我展示的代码中,还有比这一个更多的方法。有没有办法检查 $(“#div3”)。slideToggle(“slow”); 是否已存在于当前页面中?谢谢!
$('#button').click(function() {
$("#div3").slideToggle("slow");
});
答案 0 :(得分:1)
您可以使用以下方法检查功能是否存在:
$("#div3").slideToggle == null
特别是你可以检查一个事件是否与...绑定:
$("#div3").data("events").click == null
或者你可以像这样添加一个新属性到$('#div3'):
$("#div3").clickEventHasBeenAdded = true;
if(!$("#div3").clickEventHasBeenAdded) {
//Do something
}
答案 1 :(得分: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 CODE
$('#button').click(function() {
if($('#div3').slideToggle("slow")!=null){
alert('true');
} else{alert('false');}
});
的 http://jsfiddle.net/e3aHc/3/ 强> 的
答案 2 :(得分:0)
使用jQuery的one()方法。
$(document).one('click', '#button', function() {
$("#div3").slideToggle("slow");
});