奇怪的JQuery $ .post行为

时间:2013-02-19 15:51:34

标签: jquery post .post

我在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>

我完全失去了。

2 个答案:

答案 0 :(得分:2)

在附加click事件之前,尝试添加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
});

答案 1 :(得分:0)

使用

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

jQuery 1.4。+我想