0

我在 jquery 中学习 $.post,经过几个小时后,我很高兴它起作用了。

问题是它只适用于页面的第一次执行,或者如果我手动刷新页面。

是否有可能 location.reload(); 工作不正常,或者 location.reload() 在这里不正确?

任何帮助表示赞赏。我死定了。

这是我的代码:

<script type="application/x-javascript">

    $("a#edit").click(function(e){
        e.preventDefault();
        var id;
        id = $(this).attr('sid');
        $.modal.prompt('Editing Source ID: ' + id,
            function(){
                $.post("<?php echo $_SERVER['PHP_SELF']; ?>", { 
                                        up: $('#prompt-value').attr('value'),
                                        sid: id                                         
                                        })
                notify('Notification', 'Source ' + id + ' changed to: ' + $('#prompt-value').attr('value'), {
                    system: true,
                    icon: 'img/demo/icon.png',
                    iconOutside: false
                });
                location.reload();
             });
    });

</script>

我完全不知所措。

4

2 回答 2

2

在附加点击事件之前尝试添加一个 console.log($("a#edit")) 。

此代码令人困惑,因为您似乎将 AJAX 发布到当前文件,然后刷新,有点使 ajax 发布无用,还不如发布到自己。

大多数 jquery 函数是异步的,如果通知应该只在成功时执行,则使用成功回调或延迟完成。

$.post("<?php echo $_SERVER['PHP_SELF']; ?>", 
    { 
        up: $('#prompt-value').attr('value'),
        sid: id                                         
    }        
).done(function (data) {
    // Success, read response data, send notification if applicable and use 
    // the response data to change the current page without having to refresh
}).fail(function () {
    // Failure on the request, handle it
});
于 2013-02-19T16:04:59.943 回答
0

采用

 $("a#edit").live('click',function(e){
 ...
 });

jQuery 1.4.+ 我认为

于 2013-02-19T15:53:57.043 回答