jQuery Mobile 1.3.2:我listview
启用了过滤器。这是通过 jQuery 移动 ajax 加载的页面。
我的问题是,如果我允许它通过 ajax 加载,它会检测到我的keyup
事件,但不会提取input[data-type="search"]
. 如果我使用浏览器刷新页面,脚本会完美执行。
在使用 AJAX 加载页面时如何让它工作?
HTML 标记:
<ul id="addCompany" style="padding-bottom:10px;" data-role="listview" >
<li><a href="#" onclick="$( 'input[data-type="search"]' ).focus()">Touch To Add</a></li>
</ul>
<div id="listwrap">
<ul data-role="listview" data-autodividers="true" data-filter="true" data-inset="true">
<li><a href="index.html">Adam Kinkaid</a></li>
</ul>
</div>
jQuery
<script>
$(document).ready(function(){
var inputVal;
$('body').on("keyup",'input[data-type="search"]', function(){
inputVal = $('input[data-type="search"]').val();
if(inputVal===""){
$('#dynamic').html('<li><a href="#" onclick="$( \'form input\' ).focus()">Touch To Add</a></li>');
$('#dynamic').listview("refresh");
}else{
$('#dynamic').html('<li><a href="next.php?i&newitem='+encodeURIComponent($('input[data-type="search"]').val())+'">Touch Again To Add: '+$('input[data-type="search"]').val()+'</a></li>');
$('#dynamic').listview("refresh");
}
});
});
</script>
编辑:请注意,我可以设置值并将焦点设置在input[data-type="search"]
没有任何问题的情况下。它正在检索看起来如此棘手的值。
我尝试添加一个类,这样我就不必通过数据属性调用它,但除非我刷新页面,否则仍然无法提取值。也许如果我将一个函数注入到输入元素中,我可以使用它来返回值?