让我解释的麻烦是什么。我有两个函数:compute();和discount_compute();。当页面第一次加载时,两个函数都会执行一次(OK,因为discount_compute()是compute的一部分,所以它在compute()执行时总是运行)。功能discount_compute运行,因为$(“#自动竞标”)上(“点击”,()的函数 1倍,但随后它:当我打开#自动竞标面板(最初没有将其设置在显示屏上)。还运行2轮因为“[数据滑块]”的次)。对(“change.fndtn.slider”)。 Btw每次这个自动关闭面板关闭或打开滑块重新初始化。我只想在打开#autobid-panel时运行一次discount_compute()。有任何想法吗?麻烦与jQuery事件和函数触发
function compute() {
//first function
};
function discount_compute() {
//second function
};
$(document).ready(function($) {
$('.price').change(compute).change();
$('#autobid').on('click', function() {
if ($(this).is(':checked')) {
$('#autobid-panel').removeClass("hide");
$(document).foundation('slider', 'reflow');
discount_compute();
} else {
$('#autobid-panel').addClass("hide");
$(document).foundation('slider', 'reflow');
}
});
$('#discount').on('change', function(){
var value = $(this).val();
$('.range-slider').foundation('slider', 'set_value', value);
discount_compute();
});
$('[data-slider]').on('change.fndtn.slider', function(){
discount_compute();
});
});
感谢您的帮助!
哎呀,你可以在上面'VAR hasRun'添加一个全局变量,它最初设定为'FALSE'。初始运行后,将其设置为“true”,然后检查该变量是否为“false”,允许运行,否则不会。 – JonH