我的问题是 我可以阻止从此代码刷新页面
正如您所看到的,我从正常的click_event提交了一个帖子操作,我需要它 因为live不支持提交事件。
jQuery('.verwijder').live('click', function() {
t=$(this);
t.parents(".paneltbnote").animate({ opacity: 'hide' }, "slow",function(){
t.parents(".wrappertbnote").remove();
settbnotecounter();
$db_tbnoteid = t.parents(1).children('.frmnoteid').val();
$.post("tbnotesact.php", {
noteid: $db_tbnoteid,
actie: "verwijder",
tijd: timestamp
}, function(xml) {
// hier nog iets doen
berichtentoevoegen(xml);//feedback
});//einde post methode
});// einde callback animate methode
return false;
});//einde binding click event
答案 0 :(得分:2)
试试这个:
用
替换第一行jQuery('.verwijder').live('click', function(e) { t=$(this);
并替换 返回false; 与
e.preventDefault();
答案 1 :(得分:2)
您在点击事件中返回false,但不幸的是,它不会停止提交操作。如果你可以使用live事件监听器选择 not ,你可以随时使用bind()方法观察提交动作。
jQuery('.verwijder').bind('submit', function() {
/* everything as usual... */
return false;
});
当然,如果这不是一个选项,您可能只需要在代码中添加一些解除绑定的逻辑,然后重新绑定所有表单的提交操作以执行您想要的操作。
$(function() {
bind_submits();
// Let's pretend you have a link that adds forms to your page...
$('#addForm').live('click', function() {
add_form();
});
});
function bind_submits() {
// We need to unbind first to make we don't multi-bind
jQuery('.verwijder').unbind('submit').bind('submit', function() {
/* everything as usual... */
return false;
});
}
function add_form() {
/* do some stuff to add a form to your layout... */
// Now reset all current 'submit' binds and add the new one...
bind_submits();
}
这是在添加live()方法之前必须为所有事件侦听器做的事情(如果你当然没有使用livequery插件)。它的编码更多,维护起来更难,但目前我所知道的其他选项并不多。
快乐jQuerying ...
答案 2 :(得分:0)
很多时候,如果代码中出现错误,javascript永远不会完成函数,直到“返回false”;导致页面重新加载。暂时取消链接,看看是否有任何错误弹出。