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