Jquery ui JqueryMobile在正文中加载外部脚本并不能解决我的ajax导航问题

Jquery ui JqueryMobile在正文中加载外部脚本并不能解决我的ajax导航问题,jquery-ui,jquery,jquery-mobile,Jquery Ui,Jquery,Jquery Mobile,我看到其他一些人(例如)在JQuery Mobile中使用外部javascript脚本时遇到了问题——到今天为止,我已经加入了他们的行列 我有一个单独的外部js脚本(controllers.js),其中包含影响站点上多个页面的代码。它被加载到网站的每个页面上。我将js文件放在标记之前,它在初始页面加载时可以正常工作。但是,当我随后导航时(使用jqmajax方法),脚本中的所有函数都停止工作。我本以为脚本会保留在缓存中,但是heyho。无论如何,有一个解决这个问题的方法,我已经实现了他们的建议:“

我看到其他一些人(例如)在JQuery Mobile中使用外部javascript脚本时遇到了问题——到今天为止,我已经加入了他们的行列

我有一个单独的外部js脚本(controllers.js),其中包含影响站点上多个页面的代码。它被加载到网站的每个页面上。我将js文件放在标记之前,它在初始页面加载时可以正常工作。但是,当我随后导航时(使用jqmajax方法),脚本中的所有函数都停止工作。我本以为脚本会保留在缓存中,但是heyho。无论如何,有一个解决这个问题的方法,我已经实现了他们的建议:“……在每个页面的头部引用相同的样式表和脚本。”我已经这样做了,但即使在第一个页面加载时,js也不会启动。没有特定于页面的脚本-因此该常见问题解答的其余部分不适用

我的精简html如下所示:

<!doctype html>
    <head>
       <meta charset="utf-8">
       <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

        <meta name="viewport" content="width=device-width,initial-scale=1.0">

        <link rel="stylesheet"  href="/static/jquery-ui-1.10.3.custom.min.css">
        <link rel="stylesheet"  href="/static/jquery-mobile/css/themes/default/jquery.mobile-1.3.2.min.css">

        <script src="/static/jquery-1.9.1.min.js"></script>
        <script src="/static/jquery-ui/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.min.js"></script>
        <script src="/static/jquery-mobile/js/jquery.mobile-1.3.2.min.js"></script>

      <!-- CSS: implied media="all" -->
    </head>


    <body>
        <div data-role="page" id = "main-page">

            <div data-role="header" style="overflow:hidden;">
            </div>

            <div id = "home" data-role="content">
                <input type ='button' id = "some_btn" value="press me">
            </div>

        </div>
        <script type="text/javascript" src="/static/js/controllers.js"></script>
    </body>
</html>

关于我在这里可能做错了什么,你有什么想法吗?

因为
#页面中的内容是通过ajax动态加载的,所以单击不起作用,因为它只在调用脚本时在页面上的元素上起作用

您需要使用以下方法:


嗨,胖子。谢谢你在这里的投入-这让我有点发疯。选择更改事件是否也是如此?i、 我想我需要做一些类似$('body')。关于('change','some#select',function(){})嗨,fatman描述的方法也被称为'Just-In-Time'初始化,这意味着我们在DOM准备好之前绑定事件。对于您的问题,是的,您可以对dom中的任何元素执行相同的操作。您还可以绑定到文档$(文档).on(事件名称、元素id、函数(){})
controllers.js

$('#some_btn').click(function()
{
    alert('button pressed');
});
$('body').on('click','#some_btn',function()
{
    alert('button pressed');
});