jquery-mobile - jQuery Mobile 事件处理程序并不总是有效

标签 jquery-mobile jquery

我有一个事件处理程序,应在选择框(id =“save-login”)的值更改后调用该事件处理程序。选择框显示为 slider ,因此我使用“slidestop”事件。该页面有一个登录按钮,可将公式提交到同一 URL 位置。提交表单后,同一页面将再次显示。

不幸的是,在第一次提交后,当选择框值发生更改时,将不再调用事件处理程序。如果我第二次提交表单,处理程序通常会再次工作。

这是我的页面的代码和用于绑定(bind)事件处理程序的脚本:

<!DOCTYPE HTML>
<HTML>
    <head>      
        <link rel="stylesheet" href="jquery.mobile.structure-1.0.1.CSS" />
        <link rel="stylesheet" href="jquery.mobile-1.3.0.CSS" />

        <script src="js/jquery-1.9.1.min.js"></script>
        <script src="js/jquery.mobile-1.3.0.min.js"></script>
    </head>
    <body>
        <div data-role="page" id="login" data-theme="c">        
            <div data-role="content">
                <div id="loginform">
                    <form action="login_test.html" method="post" data-transition="flip">
                        <ul data-role="listview" data-inset="true" data-theme="c">
                            <li>
                                <label for="save-login">Login-Informationen speichern</label>
                                <select name="save-login" id="save-login" data-role="slider">
                                    <option value="0">Nein</option>
                                    <option value="1">Ja</option>
                                </select>                       
                            </li>
                        </ul>           
                        <input type="submit" value="Login" data-role="button">
                    </form>
                </div>
            </div>

        <script type="text/javascript">
        $(":jqmData(role='page')").on("pageshow", function(event) {
            var selectbox = $("#save-login");
            selectbox.on("slidestop", function(event, ui) {
                if (this.value == "1") {
                    alert("Autologin enabled");
                }
            });
        });
        </script>           

        </div>
    </body>
</HTML>

有人知道是什么导致事件处理程序无法正常工作吗?

最佳答案

将代码更改为:

$(document).off("pageshow", ":jqmData(role='page')").on("pageshow", ":jqmData(role='page')" ,function(event) {
    $(document).on("slidestop", "#save-login",function(event, ui) {
        if (this.value == "1") {
            alert("Autologin enabled");
        }
    });
});

关于jquery-mobile - jQuery Mobile 事件处理程序并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16588890/

相关文章:

jquery - 未排序列表 : load images or divs on demand

javascript - 只能在行布局中居中最后一个标签

jquery - click 和 tap 事件有什么区别?

javascript - jquery中刷新DataTable插件表

javascript - 浏览器在使用 js 延迟加载时下载两倍的图像

javascript - 如何获取当前 session 登录用户的ID?

jquery - 重新设计 JQueryMobile - 更改文本框的宽度

javascript - 如何实现 jQuery - prettyCheckable? onClick 事件无效

javascript - 在模式对话框上显示 Bootstrap 框

javascript - 虚拟 "Back Button"jquery