jQuery Mobile 1.3.2:我有listview
启用了过滤器。这个页面是通过jQuery mobile ajax加载的。
我的问题是,如果我允许它通过ajax加载,它会检测到我的keyup
事件,但它不会提取input[data-type="search"]
的值。如果我使用浏览器刷新页面,脚本将完美执行。
如何在使用AJAX加载页面时使其工作?
HTML MARKUP:
<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"]
上,而不会出现任何打嗝。它正在检索看起来很棘手的值。
我尝试添加一个类,以便我不必通过数据属性调用它,但除非我刷新页面,否则仍然无法提取值。也许如果我在输入元素中注入一个函数,我可以用它来返回值?