1

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"]没有任何问题的情况下。它正在检索看起来如此棘手的值。

我尝试添加一个类,这样我就不必通过数据属性调用它,但除非我刷新页面,否则仍然无法提取值。也许如果我将一个函数注入到输入元素中,我可以使用它来返回值?

4

0 回答 0