我有一个名为createtable
的函数,它将gender
作为参数。当第一次加载页面时,我希望$(document).ready
使用默认的性别值触发该函数,稍后我选择性别过滤器时,我希望使用该值执行createtable
函数。以下是代码:
$(document).ready(function() {
var gender = 'all';
$('.ranges ul li').click(function() {
$(".dropdown-toggle span").text($(this).text());
$('.ranges ul li').removeClass("active");
$(this).addClass("active");
switch ($(this).text()) {
case 'All':
gender = 'all';
break;
case 'Female':
gender = 'f';
break;
case 'Male':
gender = 'm';
break;
case 'Not Specified':
gender = 'none';
break;
default:
gender = 'all'
}
createtable(gender);
});
createtable(gender);
});
createtable
是$(document).ready
范围内定义的函数。问题是第一次加载页面时,createtable
函数会被执行一次,但是当我使用过滤器更改性别时,它会被执行两次。
答案 0 :(得分:0)
尝试停止事件传播
$(document).ready(function() {
var gender = 'all';
$('.ranges ul li').click(function(event) {
event.stopPropagation(); //stop bubble up
$(".dropdown-toggle span").text($(this).text());
$('.ranges ul li').removeClass("active");
$(this).addClass("active");
switch ($(this).text()) {
case 'All':
gender = 'all';
break;
case 'Female':
gender = 'f';
break;
case 'Male':
gender = 'm';
break;
case 'Not Specified':
gender = 'none';
break;
default:
gender = 'all'
}
createtable(gender);
});
createtable(gender);
});