【发布时间】:2021-05-28 19:09:34
【问题描述】:
我有各种列表,在这些列表中我有复选框列表,我展示了更多/更少的功能。
现在,一切正常,但我想将一些逻辑转换为一个班轮,尝试了各种方法但没有成功,所以在这里发布。
这是 HTML 部分,假设我有多个这样的列表。
<div id="list-special-needs">
<h4 class="filter-header">Special Needs</h4>
@foreach (var item in specialNeeds)
{
<div class="am-checkbox" style="padding: 3px 0;">
<input id="chk-special-needs-@item.ToLower()" name="special-needs" value="@item" type="checkbox" class="schedulerepeat-checkbox" onclick="return prepareSearchParams()" />
<label for="chk-special-needs-@item.ToLower()" class="margin-h-10 mobile-padding">@item</label>
</div>
}
<p onclick="return loadMore(this, 'list-special-needs', '@specialNeeds.Length')" class="show-more">Show more...</p>
</div>
<div class="clearfix"></div>
Js:
<script type="text/javascript">
PageEvent.add(PageEvent.AFTER_INIT, function () {
$("#list-services .am-checkbox").slice(5).hide();
$("#list-timing .am-checkbox").slice(5).hide();
$("#list-special-needs .am-checkbox").slice(5).hide();
$("#list-neighborhoods .am-checkbox").slice(5).hide();
});
function loadMore(element, listId, length) {
var listSelector = $(`#${listId} .am-checkbox`);
var isShowMore = $(element).text() == 'Show more...';
if (isShowMore) {
//..show more
$(element).text('Hide...');
listSelector.slice(0, length).slideDown();
} else {
//..hide
$(element).text('Show more...');
listSelector.slice(5).slideUp();
}
}
</script>
我只想把它转换成一个班轮。
$("#list-services .am-checkbox").slice(5).hide();
$("#list-timing .am-checkbox").slice(5).hide();
$("#list-special-needs .am-checkbox").slice(5).hide();
$("#list-neighborhoods .am-checkbox").slice(5).hide();
虽然我试过了,但是没用。
$("#list-services .am-checkbox, #list-timing .am-checkbox ..").slice(5).hide();
任何帮助将不胜感激。
【问题讨论】: