2017-04-03 40 views
0

我在Magento的项目正在与一个插件变化对(document).ready()onclick属性。我尝试使用jquery在用户操作后更新它,但它返回undefined。而且我注意到,onclick属性不是由view page sourceCtrl + u访问的页面的源代码中的检查可见,但可见。onclick属性不能在jQuery中进行选择,并在检查中不可见,但工作

在检查的有针对性的按钮看起来像

<button type="button" id="addtocart_btn_5" title="Add to cart" class="button btn-cart btn-cart-with-qty"> 
    <span>Add to cart<span> 
</button> 
在页面源

查看它看起来像:

<button type="button" id="addtocart_btn_5" title="Add to cart" class="button btn-cart btn-cart-with-qty" 
     onclick="setLocation('http://mysite.local/eg_ar/checkout/cart/add/uenc/aHR0cDovL2hhaXJidXJzdGFyYWJpYS5sb2NhbC9lZ19hci8,/product/5/form_key/lqUtnptjQU7Cn7E1/qty/1/')"> 
    <span>Add to cart</span> 
</button> 

这个按钮是通过可变btn正确访问,当我使用console.log(btn.attr("onclick"));返回undefined但像id属性它正确返回ID。

注意:该按钮工作得非常好。但我无法编辑它。

更新: 按@Saptal的问题,我已经表现出更多的代码。在HTML部分我有这个块

<div class="add-to-cart"> 
    <form id="product_addtocart_form_15"> 
      <span class="custom-counter"> 
      <input min="1" name="qty" id="qty" maxlength="2" value="1" title="qty" class="qty qty-updating" type="number"><div class="custom-counter-nav"><div class="custom-counter-button custom-counter-up">+</div><div class="custom-counter-button custom-counter-down">-</div></div> 
     </span> 
     <button type="button" id="addtocart_btn_15" title="Add to cart" class="button btn-cart btn-cart-with-qty"><span>Add to cart</span></button> 

    </form> 

</div> 

和JS我做

<script> 
    jQuery('.qty-updating').each(function(){ 
     var qty = jQuery(this); 

     qty.on('change', function(e){ 
      alert('here'); 
      var btn = qty.parent().siblings('.btn-cart'); 
      console.log(btn.attr("onclick")); 
     }); 

    }); 
</script> 

在此先感谢

+0

你是如何得到'btn' – Satpal

+0

@Satpal我更新了这个问题,并且添加了更多代码 –

+0

用'let qty'尝试一次' – Satpal

回答

-1

在您的问题描述,你说你使用一个插件,它改变的onclick属性。似乎有一个JS代码实际上删除了该属性。你可以禁用该插件只是为了确保onclick属性不被删除?

+0

如何删除它?它在工作并且在源代码中可见。 –

+0

所以你说,按钮的onclick事件工作,即使不在检查员显示? 是不是? @ M.Elwan –

+0

@AbhishekMishra准确地说,是 –

1

点击事件被绑定到按钮,onclick属性没有明确设定为按钮所以HTML属性,

btn.attr('onclick') 

将返回不确定 和解决这个问题,你需要关闭(取消)当前点击事件和(绑定)的新的单击事件如下:

btn.off('click'); 
btn.on('click', function() { 
    yourFunction(); 
}); 

希望这有助于:)

+0

我要更新'onClick'的网址,而不是将其覆盖。它包含一个不能重新生成的生成的url setLocation('http:// mysite.local/sa_ar/checkout/cart/add/uenc/aHR0cDovL2hhaXJidXJzdGFyYWJpYS5sb2NhbC9zYV9hci8,/ product/5/form_key/M3h1IpZ4WmxTNVbX/qty/1 /' –

+0

aha ..那么你可能需要检查你是否可以在没有访问onclick属性的情况下获得附加的点击事件。 请检查这个问题 [我可以找到使用jQuery绑定元素的事件吗?](http://stackoverflow.com/questions/2008592/can-i-find-events-bound-on-an-element-with- jQuery的) –

相关问题