网页调用后jquery无法正常工作

时间:2012-10-31 00:55:50

标签: jquery mobile

有点难以解释。但是在这里有网站:

http://beerportfolio.com/mobile/

左上角的按钮打开侧栏导航。

当用户输入登录信息时,页面会使用以下代码调用自身:

<h5>Sign In</h5>

 <form name=\"input\" action=\"index.php\" method=\"post\">
 User Name: <input type=\"text\" name=\"user\"  id=\"user\" />
 </p>
 Password: <input type=\"password\" name=\"password\" id=\"password\" />
 <div class=\"blank-divider\"></div>    
    <p>
 <input type=\"submit\" name = \"login\" value=\"login\" />
 </p>
 </form>

当页面调用自己成功登录或登录失败时,幻灯片不会再打开。

以下是jquery的代码:

<!--Toggle Menu-->
<script type="text/javascript">
            $(function() {
                $('#navigation').click(function() {
                    $('.navigation').slideToggle('fast');
                    return false;
                });
            });
</script>

总结如何重现问题请转到上面的链接。尝试右上角的按钮,看到侧边栏弹出和弹出。然后输入一些随机登录信息并尝试登录。当下一页加载时再次尝试左上角的登录按钮,现在侧栏不会出现。

这里有什么想法吗?

2 个答案:

答案 0 :(得分:1)

据我所知,加载页面时没有带有“导航”ID的元素。如果它是动态添加的,除非你使用.on将它绑定到正文,否则它将无效。

我为$('。showMenu')更改了$('#navigation')并且效果很好。

答案 1 :(得分:0)

在做了一些研究之后,我发现这与jquery mobile中自动使用ajax完成的页面刷新有关。

快速解决这个问题的原因是:

data-ajax="false"

在表单元素中使用上面的属性会强制整页刷新,从而允许我的查询调用工作。

这不是理想的解决方案,因为我仍然想要解决这个问题。但是现在这是一个快速而肮脏的解决方案。