Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript/jQuery进行多次调用-需要找出原因_Jquery - Fatal编程技术网

javascript/jQuery进行多次调用-需要找出原因

javascript/jQuery进行多次调用-需要找出原因,jquery,Jquery,我有一个通过jqueryajax计算价格的脚本,我在Firebug控制台中注意到,同一个ajaxget调用发生了多次(有时几十次)。我混合使用javascript和jQuery来启动函数,我感觉这就是问题所在。我只是不知道有什么更有效的方法 当从菜单中选择一个值时,该函数将运行。以下是代码: <div id="order_promo"> <select name="promo1" id="promo1" onmouseover="CalcPromo(1)"> <op

我有一个通过jqueryajax计算价格的脚本,我在Firebug控制台中注意到,同一个ajaxget调用发生了多次(有时几十次)。我混合使用javascript和jQuery来启动函数,我感觉这就是问题所在。我只是不知道有什么更有效的方法

当从菜单中选择一个值时,该函数将运行。以下是代码:

<div id="order_promo">
<select name="promo1" id="promo1" onmouseover="CalcPromo(1)">
<option value="1">Name1</option
.....
.....
</select>
</div>
当从菜单“promo1”中选择一个值时,该功能应启动。这是我唯一能让它工作的方法。我假设它们是一种纯粹的jQuery方法来实现这一点并消除多个调用。这就是我挣扎的地方


谢谢

每次执行鼠标悬停(从标记中)时,它都会添加一个新的处理程序:

function CalcPromo(row){ 
    $(function(){
        $('#promo' + row).change(function(){
应该是这样的:

$(function(){
     $('select[id^="promo"]').change(function(){
您需要获得一个“行”-它可能是selects的索引?没有您的标记来评估:

var row = $(this).index('select');
从标记中删除行为:

<select name="promo1" id="promo1" onmouseover="CalcPromo(1)">
您的活动可以是:

$('.myselectorclass').change(function(){

每次(从标记中)执行鼠标移动操作时,它都会添加一个新的处理程序:
function CalcPromo(row){$(function(){$('#promo'+row)。change(function()){
您是否有多个
@MarkSchultheiss Ahhh…好的,这很有意义。是的,总共有三个。@MarkSchultheiss我更改了它,它工作正常。您是否可以发布一个答案,这样我就可以给您分数?因为您对这方面比较陌生,如果这样做有效,并且您没有得到更好的答案,您应该单击answe左侧的复选标记r、 我并不是在要求声誉,只是这标志着答案已被接受,并使人们更容易寻找没有被接受答案的问题来帮助他人。
<select name="promo1" id="promo1">
<select name="promo1" id="promo1" class="myselectorclass" data-row="1">
var row = $(this).data("row");// use this one
// OR
var row = $(this).index('.myselectorclass');
$('.myselectorclass').change(function(){