jQuery ajax를 통해 가격을 계산하는 스크립트가 있고 Firebug 콘솔에서 동일한 Ajax GET 호출이 여러 번 (때로는 수십) 번 발생합니다 . 함수를 시작하기 위해 자바 스크립트와 jQuery를 섞어서 사용하고 있는데 이것이 문제라고 생각합니다. 나는 단지 그것을하는 더 효율적인 방법을 모른다.javascript/jQuery 여러 호출 만들기 - 이유를 알아야합니다.
메뉴에서 값을 선택하면이 기능이 실행됩니다. 여기에 대한 코드는 다음
여기<div id="order_promo">
<select name="promo1" id="promo1" onmouseover="CalcPromo(1)">
<option value="1">Name1</option
.....
.....
</select>
</div>
자바 스크립트/jQuery를 함수이다 : 값이 메뉴 "promo1"로부터 선택되는 경우
function CalcPromo(row){
$(function(){
$('#promo' + row).change(function(){
//values to pass to php script for calculations
var promo=$(this).val();
var id=$('#item' + row).val();
var qty=$('#qty' + row).val();
var price=$('#price' + row).val();
var dataString = 'prodid='+ id + '&qty=' + qty + '&price=' + price + '&promo=' + promo + '&type=promo' + '&row=' + row ; //string passed to url
$.ajax
({
url: "includes/ajax/orders2.php", //url of php script
dataType: 'json', //json is return type from php script
data: dataString, //dataString is the string passed to the url
success: function(pricedata) //pricedata is the name of json array that is returned
{
//individual values from json array
var listprice = pricedata["price"];
var disc = pricedata["disc"];
var total = pricedata["total"];
var tax = pricedata["tax"];
var grand = pricedata["grand"];
//set each value using text box id value using javascript val() function
$('#price' + row).val(listprice);
$('#discprice' + row).val(disc);
$('#itemprice' + row).val(total);
$("#tax").val(tax);
$("#grandtotal").val(grand);
},
error: function(request, status, error)
{
alert(request.responseText);
}
});
});
});
}
함수 킥오프한다. 이것이 내가 작동하게 할 수있는 유일한 방법이었습니다. 나는이 일을하고 여러 호출을 제거 순수한 jQuery 방법이라고 가정합니다. 이것은 내가 고심하고있는 곳이다.
감사합니다. 무언가 같이
function CalcPromo(row){
$(function(){
$('#promo' + row).change(function(){
가 있어야한다 :
당신이 (당신의 마크 업에서) 마우스 오버를 할 때마다이 새로운 핸들러를 추가합니다'기능 CalcPromo (행) { $ (function() { $ ('# promo'+ row) .change (function() {' –
여러 개의'
@ MarkSchultheiss Ahhh ... 알았습니다. 네, 총 3 개. – XanderNGCC