[英]Add onclick to element, but keep current onclick event
是否可以將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" />
您可以嘗試:
var curHandler = $('#checkout-payment-56').attr("onclick");
$('#checkout-payment-56')[0].onclick = null;
$('#checkout-payment-56').click(function () {
window.location.href=window.location.href;
});
包裝
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..
});
如果要將其添加到每個.webshop-checkout input[type="radio"]
,則可以采用以下方式:
$('.webshop-checkout input[type="radio"]').click(function(){
window.location.href=window.location.href;
});
實際上,我發現有一種更簡單的方法可以達到我想要的結果。
$( '.webshop-checkout input[type="radio"]' ).click(function() {
location.reload(true);
});
對不起,我在原始帖子中不清楚,並且已對其進行了編輯。
$("#checkout-payment-56" ).bind( "click", function(evt) {
console.log('that works');
//sessionStorage.setItem(evt.target.id,evt.target.className);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.