【发布时间】:2021-11-08 08:19:50
【问题描述】:
我有几个 div,其中 data-resort 和 data-resortavail 通过复选框等进行操作。我想做的是,每当data-resort 或data-resortavail 发生变化时,它都会更新data-view。我在这里所拥有的显然不起作用,我对为什么感到困惑。任何帮助表示赞赏。
我收到了这条评论:
我不明白为什么您没有在点击时更新数据视图 事件。 “我想要做的是,每当数据度假村或 data-resortavail 更改,它更新数据视图..."。您正在设置 点击时的值,所以你知道你正在设置的值,你不需要 检查它们的函数。
希望这样可以更清晰。
简单的答案是,因为复选框不控制data-resortavail。但是,data-resortavail 是控制data-view 的一部分。我不想用复选框更改data-view,因为那样它不会给我我需要的东西。
复选框仅更改data-resort。 ajax 搜索控件data-resortavail。由于复选框控制data-resort,我需要更新data-view,等待data-resort 和data-resortavail 的值。
HTML
<div id="AKV-container" class="resortcontainer wdw" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="AKV2-container" class="resortcontainer wdw" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="AULV-container" class="resortcontainer ntp" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="BLT-container" class="resortcontainer wdw" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="BCV-container" class="resortcontainer wdw" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="BWALK-container" class="resortcontainer wdw" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="VWL-container" class="resortcontainer wdw" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="WCC-container" class="resortcontainer" data-resort="1" data-resortavail="1" data-view="1"></div>
<div id="GCAL-container" class="resortcontainer" data-resort="1" data-resortavail="1" data-view="1"></div>
工作复选框 (lackfindAttributes();)
jQuery(document).ready(function(){
j$('.filterCheckBox').click(function() {
if( j$(this).is(':checked')) {
j$("."+this.value).attr('data-resort',1);
j$("#"+this.value).attr('data-resort',1);
attributeCount();
findAttributes();
} else {
j$("."+this.value).attr('data-resort', 0);
j$("#"+this.value).attr('data-resort', 0);
attributeCount();
findAttributes();
}
})
})
我尝试根据其他两个属性data-resort 和data-resortavail 更改data-view
let findAttributes = function(response){
j$('.resortcontainer').each(function(){
let countavail = j$(this).data("resortavail");
let countfilter = j$(this).data("resort");
if (countavail == 1 && countfilter == 1) {
j$(this).attr('data-view',1);
}
else {
j$(this).attr('data-view',0);
}
})
}
【问题讨论】:
-
我不明白您为什么不更新点击事件的数据视图。 “我想要做的是,每当 data-resort 或 data-resortavail 发生变化时,它都会更新数据视图......”。您在点击时设置值,因此您知道您正在设置的值,您不需要函数来检查它们。
-
请更新您的问题,以便在minimal, complete, and verifiable example 中显示您的相关代码。
-
IMO 这是最小的相关代码。手头的问题是。为什么选中或取消选中复选框不会更新我的
data-view值?复选框本身与data-resortavail无关,data-resortavail会影响data-view的值。
标签: javascript html custom-data-attribute