我已经进行了研究,尽管我的克隆默认设置为true,但找不到解决该问题的方法,但似乎没有复制与div相关的click事件。
根据我的研究,要使用克隆复制事件,请将克隆默认设置为true。 clone(True)。我已经做到了,但是似乎没有复制点击事件。 我的html页面中有一个提交表单
<form class="removebtn-submit" method="POST" action="{% url 'cart:remove_item' %}" >
{% csrf_token %}
<input type='hidden' name='product_id' value='{{products.id}}'/>
<button type="submit" class="btn-romove">Remove</button>
</form>
<!- form bellow becomes visible when jquery ajax called-!>
<div class="item_remove_form" style="display: none">
<form class="removebtn-submit" method="POST" action="{% url 'cart:remove_item' %}" >
{% csrf_token %}
<input class="cart-item-id" type='hidden' name='product_id' value=''/>
<button type="submit" class="btn-romove">Remove</button>
</form>
$(document).ready(function(){
$('.removebtn-submit').submit(function(e){
e.preventDefault();
var thisform=$(this);
var urldata=thisform.attr('action');
var httpMethod=thisform.attr('method')
var formdata =thisform.serialize()
$.ajax({
url:urldata,
method:httpMethod,
data:formdata,
success:function(data){
UpdateCart(data)
},
error:function(){
}
});
function UpdateCart(data){
var cartTable =$('.carttable');
var cartbody=cartTable.find(".cart-body");
var cartRow=cartbody.find(".cart-product")
var removebtn=$('.hidebtnremove')
success:function(data)
{
if(data.products.length>0){
$.each(data.products, function(index,value){
cartRow.html("")
var newremovebtn=hiddenform.clone(true).css('display','block')
newremovebtn.find('.cart-item-id').val(value.id)
cartbody.prepend("<tr> <td > <img src='"+value.image+"'>"+ value.title+ "</td>" +"<td>"+ value.weight+"</td>" +"<td>" +value.quantity+"</td>"+ "<td>"+value.price + newremovebtn.html()+ "</td> ")
});
}else{
$('body').load('body')
}
},
error:function(){},
});
}
});
});
我的克隆功能假定是克隆第二种形式,它确实做到了。但是克隆表单上的click事件不起作用。 click事件应该调用ajax函数来更新页面