Jquery ui JqueryMobile在正文中加载外部脚本并不能解决我的ajax导航问题
我看到其他一些人(例如)在JQuery Mobile中使用外部javascript脚本时遇到了问题——到今天为止,我已经加入了他们的行列 我有一个单独的外部js脚本(controllers.js),其中包含影响站点上多个页面的代码。它被加载到网站的每个页面上。我将js文件放在标记之前,它在初始页面加载时可以正常工作。但是,当我随后导航时(使用jqmajax方法),脚本中的所有函数都停止工作。我本以为脚本会保留在缓存中,但是heyho。无论如何,有一个解决这个问题的方法,我已经实现了他们的建议:“……在每个页面的头部引用相同的样式表和脚本。”我已经这样做了,但即使在第一个页面加载时,js也不会启动。没有特定于页面的脚本-因此该常见问题解答的其余部分不适用 我的精简html如下所示:Jquery ui JqueryMobile在正文中加载外部脚本并不能解决我的ajax导航问题,jquery-ui,jquery,jquery-mobile,Jquery Ui,Jquery,Jquery Mobile,我看到其他一些人(例如)在JQuery Mobile中使用外部javascript脚本时遇到了问题——到今天为止,我已经加入了他们的行列 我有一个单独的外部js脚本(controllers.js),其中包含影响站点上多个页面的代码。它被加载到网站的每个页面上。我将js文件放在标记之前,它在初始页面加载时可以正常工作。但是,当我随后导航时(使用jqmajax方法),脚本中的所有函数都停止工作。我本以为脚本会保留在缓存中,但是heyho。无论如何,有一个解决这个问题的方法,我已经实现了他们的建议:“
<!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');
});