Javascript 正在使list.js筛选器功能正常工作
我似乎无法让List.js过滤器功能正常工作。对于一个新手来说,List.js的文档还有很多需要改进的地方Javascript 正在使list.js筛选器功能正常工作,javascript,jquery,html,web,list.js,Javascript,Jquery,Html,Web,List.js,我似乎无法让List.js过滤器功能正常工作。对于一个新手来说,List.js的文档还有很多需要改进的地方 <!-- list.js script --> <script type="text/javascript"> <!-- var options = { valueNames: [ 'series', 'date'] }; var featureList = new List('lessons', options); $('#fil
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
这是我的密码:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
HTML:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
詹姆斯
{课程%%中的课程为%s}
-
{{lesson.date}
{{lesson.series}}({{lesson.lesson_type})
{{lesson.title}
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
{{lesson.info}
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
{%if lesson.url!=“”%}
]{%endif%}
{%if lesson.handout!=none%}[]{%endif%}
{%if lesson.ppt!=none%}[
{%endif%}
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
{%endfor%}
JS:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
你可以看到发生了什么。基本上,当我按下“James”按钮时,什么也没有发生。我已经搜索了StackOverflow以寻找答案,但我无法让它工作
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
我最终希望有一个包含所有课程系列的下拉菜单供大家浏览。但只要有了这个菜单,我就可以充分了解list.js,从而使它能够正常工作。Chrome调试器(如果您不确定如何到达那里,请使用Chrome中的F12)告诉您问题:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
未捕获的语法错误:意外标记}
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
您的结束字符过多:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
});
试试这个:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
<script type="text/javascript">
<!--
var options = {
valueNames: ['series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click', function () {
var $text = $(this).text();
if ($(this).hasClass('selected')) {
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function (item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
//removed });
//-->
</script>
您可以使用类
过滤器系列设置按钮,但您使用的是id选择器
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
正确的选择器应为:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
$('.filter-series').on('click', function() { ...
在考虑了nickles80和Jason Heine的答案(这两个答案都是必要的,也是有用的)之后,我也遇到了一个问题
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
我有:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
<h4 class="series">{{lesson.series}} ({{lesson.lesson_type}})</h4>
{{lesson.series}}({{lesson.lesson_type})
但是函数试图匹配“James to h4标签之间出现的内容。但是我在标签之间出现了,例如“James(布道)”
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
所以我不得不把它改成:
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>
<h4 class="series">{{lesson.series}}</h4>
{{lesson.series}
现在可以了!废话!我检查了好几次,但还是让我的大脑滑到了错误的地方。谢谢。我没认出这个!这个加上刻痕80,再加上我的答案,修复了它。
<!-- list.js script -->
<script type="text/javascript">
<!--
var options = {
valueNames: [ 'series', 'date']
};
var featureList = new List('lessons', options);
$('#filter-series').on('click',function(){
var $text = $(this).text();
if($(this).hasClass( 'selected' )){
featureList.filter();
$(this).removeClass('selected');
} else {
featureList.filter(function(item) {
return (item.values().series == $text);
});
$(this).addClass('selected');
}
});
});
//-->
</script>