jQuery 单击事件 - 第一次单击进行 ajax 调用,随后单击切换

发布于 2024-11-28 14:46:17 字数 331 浏览 0 评论 0原文

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

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

I have an anchor that when clicked makes an ajax call to load some html into a div and then load a script. I want to unbind that event after the first click, and replace it with another click event that toggles between showing and hiding that div. I've got this far, but none of my attempts to register the click event that toggles the div work.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

违心° 2024-12-05 14:46:17
$('#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);
        });       
    });
});
$('#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);
        });       
    });
});
可可 2024-12-05 14:46:17

使用事件命名空间尝试此操作,这有助于仅取消绑定当前事件处理程序,以便在取消绑定时不会触及其他单击处理程序。

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

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

Try this with event namespace which help to unbind only the current event handler so that other click handlers are not touched when we unbind.

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

    $('#div').load('file.html', function() {    
        $.getScript('script.js', function(){       
          $('#anchor').unbind('click.anchor').click(function(){
             $('#div').toggle();
          });
        });
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文