Jquery事件执行两次
Jquery event executing twice
我真的在为小时的代码和平而奋斗:
$('#property_image_uploader').on('submit',function(e) {
var formData = new FormData(this);
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData,
cache:false,
contentType: false,
processData: false,
success:function(data){
$.ajax({
contentType: 'application/x-www-form-urlencoded;charset=UTF-8'
, method: 'post'
, url: 'property_info_box.php'
, data: {id: parseInt(data)}
, success: function(page){
$('#property_info_box', parent.document).html(page);
return false; }
});
},
error: function(data){ console.log(data); }
});
});
$("#property_image_chooser").on("change", function(e){
$("#property_image_uploader").submit();
});
问题是,每次$('#property_image_chooser')改变,$('#property_image_uploader')提交被触发两次。我曾试图将e.p preventdefault()和e.p stopimmediatepropagation()在这两个函数内的任何地方,这个问题消失了,但随后,加载在第二个ajax调用冻结的页面,没有按钮可以被触发了…
通过在提交时添加e.p preventdefault()并在第二次ajax调用时删除'return false'来解决所有问题。最后的代码看起来像这样:
$('#property_image_uploader').on('submit',function(e) {
var formData = new FormData(this);
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData,
cache:false,
contentType: false,
processData: false,
success:function(data){
$.ajax({
contentType: 'application/x-www-form-urlencoded;charset=UTF-8'
, method: 'post'
, url: 'property_info_box.php'
, data: {id: parseInt(data)}
, success: function(page){
$('#property_info_box', parent.document).html(page); }
});
},
error: function(data){ console.log(data); }
});
});
$("#property_image_chooser").on("change", function(e){
e.preventDefault();
$("#property_image_uploader").submit();
});
相关文章:
- Jquery点击事件必须点击两次
- 一次点击,两次'单击'事件已启动
- 替换的超时事件触发两次或两次以上(有时)
- jquery on触发器按键事件两次
- 骨干视图触发事件两次
- animationEnd 事件处理程序 - 事件侦听两次
- 触发的事件被接收两次.如何找到鬼视图
- 服务器触发客户端事件两次
- `object:selected`事件触发两次
- 如何处理iframe中两次或根本不触发的IE11 localStorage事件
- 谷歌地图api v3 zoom_changed事件在fitBounds调用后激发了两次
- 为什么主干视图触发更改事件两次
- 如何防止在快速单击时两次调用en事件处理程序
- jQuery点击事件触发两次
- 为什么事件mouseenter在JavaScript中触发两次
- 在具有单击事件的 li 内时停止选中两次复选框
- 引导模式切换事件发生两次
- j查询点击事件触发两次
- 骨干模型触发“变化”.两次事件
- 在父元素具有相同事件函数的子元素上单独触发两次事件函数