单击事件触发器两次

时间:2015-02-20 10:57:47

标签: jquery

我添加了一个用作按钮的图像。

$('.vCSS_input_addtocart').after('<img id="custom_btn_addtocart" src="/v/vspfiles/templates/reverb/images/buttons/btn_addtocart.gif">');

在我的图片onClick事件上,我正在触发另一个按钮的点击事件,但似乎它正在触发两次。

$('#custom_btn_addtocart').click(function(){
  $('.vCSS_input_addtocart').trigger('click');
});

我尝试了各种方法,例如检查is_clicked=falseunbind("click").click()但仍然没有运气:(

我点击的按钮标签是

<input class="vCSS_input_addtocart" type="image" src="/v/vspfiles/templates/reverb/images/buttons/btn_addtocart.gif" name="btnaddtocart" onclick="return addToCart(this.form, this);">

这是addToCart函数http://pastebin.com/Ysx1FSWS

4 个答案:

答案 0 :(得分:0)

我认为您的案例中存在事件传播问题,请尝试使用return false

$('#custom_btn_addtocart').click(function(){
  $('.vCSS_input_addtocart').trigger('click');
  return false;
});

并在return false点击事件处理程序中使用.vCSS_input_addtocart

答案 1 :(得分:0)

尝试preventDefault()和stopPropagation()

$('#custom_btn_addtocart').click(function(e){
  e.preventDefault();
  e.stopImmediatePropagation();
  $('.vCSS_input_addtocart').trigger('click');
});

答案 2 :(得分:0)

试试这个jsFiddle

$('#custom_btn_addtocart').click(function(){
   $('.vCSS_input_addtocart').trigger('click');
});

$('.vCSS_input_addtocart').click(function(){
    alert('test');
    $('.vCSS_input_addtocart').after('<img id="custom_btn_addtocart" src="/v/vspfiles/templates/reverb/images/buttons/btn_addtocart.gif">');
})

答案 3 :(得分:0)

我通过

完成了这项工作
$('.vCSS_input_addtocart').click(function (event) {
    event.preventDefault();
    event.stopPropagation();
}).click();