javascript - 同一元素上的 jQuery 绑定(bind)

标签 javascript jquery jquery-mobile

我对 jquery 有疑问

page1.html

<div id="gold">gold value</div>
<!-- NAVIGATE -->
<a href="page2.html">Go to page 2</a>

page2.html

<div id="gold">gold value</div>
<!-- NAVIGATE -->
<a href="page1.html">Go to page 1</a>

主要.js

$(document).on('pagebeforeshow',  function () {

   $('#gold').html(100);
});

此代码适用于 page1。

当我从第 1 页导航到第 2 页时,第 2 页是字符串“gold value”。

只有当我像这样更改 main.js 和 page2.html 时它才有效:

$(document).on('pagebeforeshow',  function () {

   $('#gold').html(100);
   $('#gold2').html(100);
});

和 当我在 page2.html 中更改时

div id="gold2"

最佳答案

由于 jQuery Mobile 的页面加载方式,您可能在某个时间在 DOM 中有很多页面。

jQuery Mobile 使用带有属性 data-role="page"div 元素来表示页面。首先,确保您的页面具有唯一的 id,如果您将页面分隔在多个 HTML 文件中也没关系。

现在您可以访问指定当前事件页面的重复 ID 元素:

$(document).pagecontainer("getActivePage").find("#gold");

但我真的建议避免重复的 ID,即使在不同的页面中也是如此。使用 class 代替:

<div class="gold">gold value</div>

$(".gold").html(100);

关于javascript - 同一元素上的 jQuery 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729551/

相关文章:

jquery-mobile - featherlight gallery touch 示例

javascript - LightBox Jquery 的问题

javascript - 获取每个地点的 10 条最新评论

java - 如何在ajax post调用中发送不同类型的数据

javascript - jQuery $.ajaxSetup header 适用于所有 ajaxRequest,即使被覆盖

android - 下拉菜单背景在 Android 应用中变为黑色

javascript - KnockoutJS 在值后加载选项时丢失以前的值

javascript - 暂停 Controller 并等待服务响应

javascript - 正在加载直到图像准备好并且图像隐藏直到它准备好

jquery-mobile - 如何在 changePage 期间停止调用 $.mobile.loading ('hide' 的 jQuery Mobile?