如果您的第二页 javascript 放置在 HEAD 内容中
如果我理解正确,您是在使用 ajax 将此页面加载到 DOM 中吗?如果这是真的,那么我理解你的问题。你看,当 ajax 用于页面加载时,只有 BODY 内容被加载到 DOM 中。
如果您在第一个 HTML 文件中初始化您的第二个 html 页面 javascript 或将您的 SCRIPT 块移动到第二个 HTML BODY 内容。
另外,我在其他ARTICLE中描述了这个问题,其中包含更多细节和一些示例,或者可以找到HERE。
如果您有多个具有相同 id 的按钮
这也可能是一个有点不同的问题。你看,如果你有 2 个具有相同 id 的按钮,它们都在一个 DOM 结构中。如果您尝试在第二页按钮上绑定单击事件,则该相同事件将绑定到第一页上的按钮。因为它们具有相同的 id,jQuery 会将事件绑定到 DOM 中找到的第一个按钮(具有该 id)。
要解决这个问题,您需要使用一个名为 active page 的 jQM 构造函数。还有一个警告,下一个代码示例仅适用于在 pageinit 事件之后初始化的页面事件,例如 pagebeforeshow 或 pageshow 事件: p>
$(document).on('pagebeforeshow', '#yourPageID', function(){
// Registering button click
$(document).on('click', $.mobile.activePage.find('#myButtonID'), function(){
// Do something
});
});
这行代码:
$.mobile.activePage.find('#myButtonID')
只会获取在当前活动页面中找到的按钮“#myButtonID”,无论 DOM 中存在多少其他具有相同 id 的按钮。
回答最后一个问题
关于您的最后一个问题。无论您使用哪种模板结构(1 个带有多个页面的 HTML 或多个 HTML),您只需要担心我之前提到的事情。