我陷入了一种奇怪的境地.我无法从逻辑上解决它.
问题:(所有这些都必须在没有页面刷新的情况下完成!):
AJAX是否有限制或我必须检查/重新编辑/学习一些东西?
Firebug返回该新元素并检查它 - 我应该能够在创建它时将其删除.(删除仅在我进行页面刷新后才有效.)
请帮忙!
编辑1:链接已删除.
编辑2:这是旧的(勘误表)代码:(全部在'文档就绪'功能)
//////////// COMMON:$('.list>*').addClass('delete'); var valDel = 0; $('.delete').attr('value',function(){valDel ++; return + valDel;});
/////////////// WRITE:
$(function() {
$("form.form #submit_btn").click(function() {
//SOMETHING ON CLICK....+
var name = $('#name').val();
var comment = $('#comment').val();
var email = $('#email').val();
var i = 0;
$.ajax({
type: "POST",
data: "ime="+ime+"&komentar="+komentar+"&email="+email,
cache: false,
success: function(){
//SOMETHING ON SUCCESS....+
$('.list >*').addClass('delete');
$('.delete').attr('value', function() {i++; return ''+i;}); // FIX: add again incremented values
}
});
return false;
});
});
/////////////////////// DELETE:
$(function() {
$(".delete").click(function() { // THE FIX: ...).live('click', function(){...
$(this).addClass('toBeDeleted');
var valx = $(this).attr("value");
var string = 'valx='+ valx;
$.ajax({
type: "POST",
data: string,
cache: false,
success: function(){
$('.toBeDeleted').hide( function() {
$(this).remove();
var reValDel = 0;$('.list >*').attr('value', function() {reValDel++; return +reValDel;});
});
}
});
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
我怀疑在创建新项目后动态添加dom元素时,不会添加click事件处理程序.您应该使用jQuery的"实时"功能将单击事件绑定到元素.
仔细查看您的来源,您应该更改此内容:
$(".delete").click(function() {...
Run Code Online (Sandbox Code Playgroud)
对此
$(".delete").live("click", function() {...
Run Code Online (Sandbox Code Playgroud)