我在使用.ajax()发布表单后使用.prepend()来加载数据。
添加新元素后,我的功能将无效。
如果我直接在前置数据中链接js文件,则函数可以正常工作,但是当我发布POST时,我开始将事件相乘。
我觉得它与绑定有关,但我无法弄清楚如何处理它。
任何想法?
谢谢!
答案 0 :(得分:1)
创建一个封装jEditable逻辑的函数,如下所示:
function initjEditable(){
$('.review_edit').editable('edit_review.php', {
indicator : 'Saving...',
tooltip : 'Click to edit...'
});
$('.review_edit_area').editable('edit_review.php', {
type : 'textarea',
cancel : 'Cancel',
submit : 'OK',
indicator : '<img src="/hrt/images/indicator.gif">',
tooltip : 'Click to edit...'
});
}
然后从几个地方调用该函数。第一个是从blurbs链接的onclick .load语句中调用它,如下所示:
$('#adminContainer').load('blurbs.php',function(){ initjEditable(); });
这将确保它第一次运行而不在$(document).ready()函数中。
第二个位置是你的.ajax调用的成功函数,用于添加blurb。看起来像这样:
$.ajax({
type: 'POST',
url: "add_review.php",
data: $(this).parent().serialize(),
dataType: "html",
success: function(data){
$("#results").prepend(data);
initjEditable();
$('#addForm').reset();
$('#add').hide('fast');
}
});
我假设你需要在loadBlurbs函数启动时运行同样的东西。应该使用可编辑插件保持所有内容运行,而无需重新加载脚本100次。
那时候我有意义吗?