为了不将相同的值添加到两个搜索输入中,您需要使用.closest()
,.next()
,.prev()
和.find()
作为目标。 jQuery-Mobile以不同的方式增强了数据过滤器的列表视图。
Demo
<form>
<input>
</form>
<ul data-role="listview">
<li>
<a>text</a>
</li>
</ul>
的form
其中input
位于,是对ul
的相同的水平。要定位input
框,您需要使用.prev('form').find('input')
。查看下面的演示和新代码。
$("input[data-type='search']").keyup(function() {
if ($(this).val() === '') {
$(this).closest('form').next("[data-role=listview]").children().addClass('ui-screen-hidden');
}
});
$('a.ui-input-clear').click(function() {
$(this).closest('input').val('');
$(this).closest('input').trigger('keyup');
});
$("li").click(function() {
var text = $(this).find('.ui-link-inherit').text();
$(this).closest('[data-role=listview]').prev('form').find('input').val(text);
$(this).closest('[data-role=listview]').children().addClass('ui-screen-hidden');
});
这两个文本都在同一页?或单独的页面? – Omar
什么是输入文本?地址或其他东西? – Jeffrey
替换此'$( '输入[数据类型= “搜索”]')VAL($(本)的.text());'与此'$ .mobile.activePage.find('输入[数据类型= “搜索”]')VAL($(本)的.text());'。这会将值添加到仅在活动页面中搜索输入。这里 – Omar