我有一個回傳 html 的 ajax 呼叫。這適用于更改。但是,我擁有的 JavaScript 不起作用,它會根據回傳結果中的點擊次數來執行操作。
ajax 呼叫是:
function update_order_shipping(){
$.ajax({
url: 'ajax_order_shipping.php',
method: "post",
dataType: 'html',
success: function (result) {
$('#shipping-method').html(result);
},
error: function(xhr, status, error) {
//alert(xhr.responseText);
}
});
};
這很好用。回傳我需要的確切結果。
問題是這些回傳的結果也有單選按鈕,并且在更改時我執行此 javascript:
$('input[name="shipping"]').change(function() {
if($(this).is(':checked') && ( $(this).val() == 'freeamount_freeamount' ) ){
document.getElementById('fedex_number').style.display="none";
document.getElementById('ups_number').style.display="none";
document.getElementById('your_shipping_conditions').style.display="none";
var shipping_method = document.getElementById('text-freeamount').innerText;
document.getElementById('text-shipping').innerHTML = shipping_method;
var shipping_value = document.getElementById('value-freeamount').innerText;
document.getElementById('value-shipping').innerHTML = shipping_value;
}
});
現在在初始頁面加載時效果很好,但是回傳的結果與初始頁面加載相同的 html,javascript 無法作業。我知道它與系結或類似的東西有關,但不太確定如何實作它,因此結果將始終使用 javascipt。
uj5u.com熱心網友回復:
您需要使用on將事件系結到動態創建的元素。
$("body").on("change", "input[name='shipping']", function(event) {
// stuff here
});
“body”可以替換為輸入的祖先的任何非動態元素。
任何匹配的事件都將自動偵聽更改事件,無論元素是在開始時添加的還是之后添加的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/480376.html
標籤:javascript 阿贾克斯
上一篇:如何制作行內六邊形畫廊
下一篇:在陣列Js中映射陣列
