Jquery-使用onclick和onload筛选显示结果
我有一个带有几个单选按钮的页面和列表项列表(ul/li)。当第一次进入页面时,将显示完整的列表。查看收音机将缩小列表范围 我找到了一些jquery代码,它工作得很好。除了当前过滤之外,我想做的和找不到的是在页面加载时启动过滤(还没有单击),这样如果有任何预定义/预先检查的广播(如下面的第一个广播),列表将是已经过滤的列表,而不是完整的列表 谢谢你的帮助!以下是JSFIDLE上的链接:Jquery-使用onclick和onload筛选显示结果,jquery,jquery-filter,Jquery,Jquery Filter,我有一个带有几个单选按钮的页面和列表项列表(ul/li)。当第一次进入页面时,将显示完整的列表。查看收音机将缩小列表范围 我找到了一些jquery代码,它工作得很好。除了当前过滤之外,我想做的和找不到的是在页面加载时启动过滤(还没有单击),这样如果有任何预定义/预先检查的广播(如下面的第一个广播),列表将是已经过滤的列表,而不是完整的列表 谢谢你的帮助!以下是JSFIDLE上的链接: 将函数从委派更改事件中拉出(顺便说一句,您应该使用.on()而不是.delegate()),然后在文档准备就绪时
将函数从委派更改事件中拉出(顺便说一句,您应该使用
.on()
而不是.delegate()
),然后在文档准备就绪时调用它
$('div.tags').delegate('input[type=radio]', 'change', update);
update(); // THIS CALLS THE FUNCTION ON DOC READY
function update() {
var $lis = $('.results > li'),
$checked = $('input:checked');
if ($checked.length) {
var selector = $checked.map(function () {
return '.' + $(this).attr('rel');
}).get().join('');
$lis.hide().filter(selector).show();
} else {
$lis.show();
}
}
$(document).ready(function() {
$('div.tags').delegate('input[type=radio]', 'change', function() {
var $lis = $('.results > li'),
$checked = $('input:checked');
if ($checked.length) {
var selector = $checked.map(function (){
return '.' + $(this).attr('rel');
}).get().join('');
$lis.hide().filter(selector).show();
} else {
$lis.show();
}
});
});
$('div.tags').delegate('input[type=radio]', 'change', update);
update(); // THIS CALLS THE FUNCTION ON DOC READY
function update() {
var $lis = $('.results > li'),
$checked = $('input:checked');
if ($checked.length) {
var selector = $checked.map(function () {
return '.' + $(this).attr('rel');
}).get().join('');
$lis.hide().filter(selector).show();
} else {
$lis.show();
}
}