2

我有一个锚点,当单击它时会进行 ajax 调用以将一些 html 加载到 div 中,然后加载脚本。我想在第一次单击后取消绑定该事件,并将其替换为在显示和隐藏该 div 之间切换的另一个单击事件。我已经做到了这一点,但是我没有尝试注册切换 div 工作的单击事件。

$('#anchor').click( function() {
    $('#div').load('file.html', function() {    
        $.getScript('script.js');       
        $('#anchor').unbind();
    });
});
4

2 回答 2

2
$('#anchor').click( function(e) {
    e.preventDefault(); // prevent the browsers following the link
    $('#div').load('file.html', function() {    

        // make sure to bind once the new script has been included
        // i.e. within .getScript's callback
        $.getScript('script.js', function() {
            $('#anchor').unbind("click").click(myShowHideFunc);
        });       
    });
});
于 2011-08-07T19:02:07.130 回答
1

尝试使用事件命名空间,这有助于仅解除当前事件处理程序的绑定,以便在我们解除绑定时不会触及其他点击处理程序。

$('#anchor').click('click.anchor', function() {

    $('#div').load('file.html', function() {    
        $.getScript('script.js', function(){       
          $('#anchor').unbind('click.anchor').click(function(){
             $('#div').toggle();
          });
        });
    });
});
于 2011-08-07T19:13:58.460 回答