jQuery 函数在另一个函数运行后不起作用

标签 jquery ajax

我有两个 jquery 函数,一个用于关注,一个用于取消关注,当您单击其中任何一个时,它们都会更改为相反的单词。问题是,如果您单击“关注”,它会像应有的那样更改为“取消关注”,但除非刷新,否则您无法再次单击该链接。这是我的功能:

$(function(){
    $('#follow').on('click',function(){
        $.ajax({
            type: 'POST',
            url : 'functions/follow.php',
            data: {follower : $.upnamespace.session_id,
                   user : $.upnamespace.p_id},
            success: function(result) {
                if(result == 'followed'){
                    $('#follow').attr('id','unfollow').text('-Unfollow');
                }
            }
        });
    });
});
$(function(){
    $('#unfollow').on('click',function(){
        $.ajax({
            type: 'POST',
            url : 'functions/unfollow.php',
            data: {follower : $.upnamespace.session_id,
                   user : $.upnamespace.p_id},
            success: function(result) {
                if(result == 'unfollowed'){
                    $('#unfollow').attr('id','follow').text('+Follow');
                }
            }
        });
    });
});

这是其中一个链接,另一个链接相同,只是 ID 为“unfollow”且文本为“-Unfollow”

<a id="follow" class="small button blue" style="color:#fff">+Follow</a>

最佳答案

由于最初不存在取消关注,因此需要使用事件委托(delegate)

$(document).on('click','#unfollow',function(){

关于jQuery 函数在另一个函数运行后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773453/

相关文章:

javascript - jQuery:强制显示修改后的dom

javascript - 远程验证

javascript - jQuery选择框多选项获取值和匹配值

javascript - 即时创建可拖动

javascript - 用JS删除选项标签

javascript - AJAX GET 调用将在第一次调用时起作用,但在其他点击后不起作用

javascript - 返回一个字符串并从 AJAX POST 传递到单独的 HTML 文件中?

javascript - 如何避免 Ajax 按钮点击两次

javascript - Material 设计复选框更改不起作用

javascript - 进行 while 循环延迟重复,直到其中的 ajax 调用完成