添加onclick到元素,但保持当前的onclick事件

时间:2014-07-27 08:50:34

标签: javascript jquery html onclick

是否可以将javascript事件添加到已经有onclick事件的DOM元素中,但我想保留该事件属性。

我有这样的单选按钮:

<input type="radio" name="checkout-payment" value="56" id="checkout-payment-56" class="checkout-radio checkout-payment-radio checkout-payment-radio" onclick="paymentChanged(this);" />

我要添加

window.location.href=window.location.href

虽然保持原来的onclick,但我无法访问html,我只能通过javascript修改。

所以我想要的代码将是

<input type="radio" name="checkout-payment" value="56" id="checkout-payment-56" class="checkout-radio checkout-payment-radio checkout-payment-radio" onclick="paymentChanged(this); window.location.href=window.location.href" />

5 个答案:

答案 0 :(得分:0)

你可以尝试:

var curHandler = $('#checkout-payment-56').attr("onclick");
    $('#checkout-payment-56')[0].onclick = null;
    $('#checkout-payment-56').click(function () {
       window.location.href=window.location.href;
    });

答案 1 :(得分:0)

包裹

window.location.href=window.location.href

在功能中,我们称之为

onRadioButtonClick()

然后,就这样做

var self = this; //keep the context of the file
$("[name=checkout-payment]").on('click', function () {
       onRadioButtonClick.call(self); //call the method with the normal context.
      //continue code..

});

答案 2 :(得分:0)

如果您想将其添加到每个.webshop-checkout input[type="radio"],您可以这样做:

$('.webshop-checkout input[type="radio"]').click(function(){
    window.location.href=window.location.href;
});

JS Fiddle Demo

答案 3 :(得分:0)

我实际上发现有一种更简单的方法来实现我想要的结果。

    $( '.webshop-checkout input[type="radio"]' ).click(function() {
  location.reload(true);
});

对不起,我在原帖中并不清楚,并且已经过编辑。

答案 4 :(得分:0)

 $("#checkout-payment-56" ).bind( "click", function(evt) {
       console.log('that works');
     //sessionStorage.setItem(evt.target.id,evt.target.className);
    });