我在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>
我完全失去了。
答案 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。+我想