0

简单的问题是,如何通过一次调用关闭所有事件,例如,如果我有另一个事件,如“mouseleave、mouseenter、keyup、keydown ...”。

我在这里所做的是,每次显示对话框时,我都会关闭(off)事件,这个“ off”适用于click,但我想要一个代码通过一次调用关闭所有事件,我试过$('.dialog').off('**');了:有效。如果我不使用 off,我会收到多次点击(多个你好世界)。

我有这样的代码:

我的表格.php

<script type="text/javascript">
$(document).ready( function () {
    $('.dialog').off('click');
    $('.dialog').on('click', '.mybutton', function() {
        alert('hello world');
    });
});
</script>
<input type="button" class="mybutton" value="click me!"/>

html:

<html>
<head>
<script type="text/javascript">
$(document).ready( function () {
    function openDialog()
    {
        $.post( '/myform.php', null, function (data) {
            $('.dialog').html( data );
            $('.dialog').show();
        });
    }

    function closeDialog()
    {
        $('.dialog').hide();
        $('.dialog').html('');
    }
});
</script>
</head>
<body>
<div class="dialog" style="display:none">

</div>
<input type="button" onclick="openDialog();" value="show dialog!" />
<input type="button" onclick="closeDialog();" value="close dialog!" />
</body>
</html>
4

2 回答 2

2

你不能传递任何参数,它会解除所有参数的绑定。

$("element").off();

js小提琴

于 2013-07-14T00:21:14.963 回答
0

我认为 unbind() 方法可以在这里工作。

http://api.jquery.com/unbind/

"删除所有以前附加的事件处理程序

于 2013-07-14T00:22:17.720 回答