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){
 ...
 });

jQuery1.4。+私は思う

于 2013-02-19T15:53:57.043 に答える