$(this).hide() 隐藏不应该隐藏的容器
Posted
技术标签:
【中文标题】$(this).hide() 隐藏不应该隐藏的容器【英文标题】:$(this).hide() hides containers it shouldn't 【发布时间】:2018-02-27 19:14:22 【问题描述】:我有一小段代码可以过滤结果列表并隐藏不匹配的 div。我正在为 PhoneGap ios 应用程序编写此内容。它在 android 上运行良好,但在 iOS 上由于某种原因它在输入几个字符后隐藏了整个搜索字段,而不仅仅是结果。
知道为什么吗?我已经将它剥离到几乎只有 html 代码和 jQuery 并且它仍在发生。我尝试注释掉$(this).hide();
部分并且它停止隐藏搜索字段,所以我认为这是罪魁祸首,但我不知道为什么或如何解决这个问题。连续玩了10个小时。有任何想法吗?也许我可以通过其他方式来定位结果?
$('#box_search').keyup(function()
var valThis = $(this).val().toLowerCase();
if (valThis == "")
$('#listing-results > .listing_container').show();
else
$('#listing-results > .listing_container').each(function()
var text = ($(this).find('.listing_results_text_name').text() + $(this).find('.listing_results_text_name').data("alt")).toLowerCase();
if (text.indexOf(valThis) >= 0)
$(this).show();
else
$(this).hide();
);
;
);
【问题讨论】:
也分享您的 HTML 代码.. 【参考方案1】:显然我看不到 html,但有时它有助于清理代码并稍微更改逻辑
var box_search = function(e)
var myIndex = $(this).val();
val = (!myIndex || myIndex==='')?false:myIndex;
if(!myIndex)
$('#listing-results > .listing_container').show();
return;
//
$('#listing-results > .listing_container').each(function()
var text = $(this).find('.listing_results_text_name').text() +
$(this).find('.listing_results_text_name').data("alt")
text = (!text || text==='')?false:text;
text = text.toLowerCase();
if(text.indexOf(myIndex.toLowerCase()) >= 0)
$(this).show();
return;
$(this).hide();
);
//end of function
$('.box_search').keyup(box_search);
【讨论】:
以上是关于$(this).hide() 隐藏不应该隐藏的容器的主要内容,如果未能解决你的问题,请参考以下文章