jquery 是 运行 多次
jquery is running multiple times
我正在发送 jquery ajax 请求并获取一些 js 代码作为响应。我将响应放在 div $("div").html(data)
中并使用 $("div").find("script").each(function(){
eval($(this).text());
});
执行脚本
但我不知道为什么脚本是 运行 两次。
这是我发送 ajax 请求广告处理响应
的代码
$.post("ajax-req-handler.php",
{
key: "barcode-input-for-sale-return",
barcodeVal: $('.product-searchbar').val(),
soldQty: 1,
soldDisc: pickDisc,
soldPrice: pickPrice,
custNum: contNum,
saleDate: $(".sale-date").val()
},
function( data ){
$(".exec-script").html(data);
$(".exec-script").find("script").each(function(){
eval($(this).text());
});
});
这是我的 ajax-req-handler.php
文件
<script>
function deleteIfMatches(array, match){
array.some((ele)=>{ ele.indexOf(match) >= 0 ? array.splice(array.indexOf(ele),1): null });
return array;
}
var barIdFr = '<?php echo $barcode_id; ?>';
var qtyToRetFr = <?php echo $quantity; ?>;
var prodStrFr = '<?php echo $prod; ?>';
var discountFr = '<?php echo $disc; ?>';
var priceFr = '<?php echo $price; ?>';
var cNumFr = '<?php echo $c_num; ?>';
var dateFr = '<?php echo $sale_date; ?>';
var prevRetAmtFr = $(".cust-info .atbr input").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$(".cust-info .atbr input").val(parseInt(priceFr)+parseInt(prevRetAmtFr)+" /-");
$("#total").val(parseInt(priceFr)+parseInt(prevRetAmtFr)+" /-");
$("#paid").val(parseInt(priceFr)+parseInt(prevRetAmtFr)+" /-");
$(".checkout-product-list").find("#"+barIdFr).find(".sold-qty").text("0");
var prodArrFr = prodStrFr.split("-");
var singleProdFr = prodArrFr.filter(function(item, index) {
return item.indexOf(barIdFr) == 0;
});
console.log(priceFr+" "+prevRetAmtFr);
var singleProdQtyFr = singleProdFr[0].split("/");
var prevQtyFr = singleProdQtyFr[4];
var currQtyFr = 1;
var currPlusPrevFr = parseInt(currQtyFr) + parseInt(prevQtyFr);
deleteIfMatches(prodArrFr, barIdFr);
prodArrFr.push(barIdFr+"/"+0+"/"+discountFr+"/"+priceFr+"/"+currPlusPrevFr+"/"+0);
$.post("ajax-req-handler.php",
{
key: "updating-db-for-Sales-return-single-product",
arrFr: prodArrFr,
custIdFr: cNumFr,
dateFr: dateFr
},
function( dataFr ){
// alert(dataFr);
});
</script>
你不需要做
$("div").find("script").each(function(){
eval($(this).text());
});
标签在解析 HTML 时执行。我建议在脚本标记中使用逻辑来查找您尝试插入的位置 HTML 然后进行插入。
我正在发送 jquery ajax 请求并获取一些 js 代码作为响应。我将响应放在 div $("div").html(data)
中并使用 $("div").find("script").each(function(){
eval($(this).text());
});
执行脚本
但我不知道为什么脚本是 运行 两次。
这是我发送 ajax 请求广告处理响应
$.post("ajax-req-handler.php",
{
key: "barcode-input-for-sale-return",
barcodeVal: $('.product-searchbar').val(),
soldQty: 1,
soldDisc: pickDisc,
soldPrice: pickPrice,
custNum: contNum,
saleDate: $(".sale-date").val()
},
function( data ){
$(".exec-script").html(data);
$(".exec-script").find("script").each(function(){
eval($(this).text());
});
});
这是我的 ajax-req-handler.php
文件
<script>
function deleteIfMatches(array, match){
array.some((ele)=>{ ele.indexOf(match) >= 0 ? array.splice(array.indexOf(ele),1): null });
return array;
}
var barIdFr = '<?php echo $barcode_id; ?>';
var qtyToRetFr = <?php echo $quantity; ?>;
var prodStrFr = '<?php echo $prod; ?>';
var discountFr = '<?php echo $disc; ?>';
var priceFr = '<?php echo $price; ?>';
var cNumFr = '<?php echo $c_num; ?>';
var dateFr = '<?php echo $sale_date; ?>';
var prevRetAmtFr = $(".cust-info .atbr input").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$(".cust-info .atbr input").val(parseInt(priceFr)+parseInt(prevRetAmtFr)+" /-");
$("#total").val(parseInt(priceFr)+parseInt(prevRetAmtFr)+" /-");
$("#paid").val(parseInt(priceFr)+parseInt(prevRetAmtFr)+" /-");
$(".checkout-product-list").find("#"+barIdFr).find(".sold-qty").text("0");
var prodArrFr = prodStrFr.split("-");
var singleProdFr = prodArrFr.filter(function(item, index) {
return item.indexOf(barIdFr) == 0;
});
console.log(priceFr+" "+prevRetAmtFr);
var singleProdQtyFr = singleProdFr[0].split("/");
var prevQtyFr = singleProdQtyFr[4];
var currQtyFr = 1;
var currPlusPrevFr = parseInt(currQtyFr) + parseInt(prevQtyFr);
deleteIfMatches(prodArrFr, barIdFr);
prodArrFr.push(barIdFr+"/"+0+"/"+discountFr+"/"+priceFr+"/"+currPlusPrevFr+"/"+0);
$.post("ajax-req-handler.php",
{
key: "updating-db-for-Sales-return-single-product",
arrFr: prodArrFr,
custIdFr: cNumFr,
dateFr: dateFr
},
function( dataFr ){
// alert(dataFr);
});
</script>
你不需要做
$("div").find("script").each(function(){
eval($(this).text());
});
标签在解析 HTML 时执行。我建议在脚本标记中使用逻辑来查找您尝试插入的位置 HTML 然后进行插入。