【发布时间】:2012-12-04 09:37:12
【问题描述】:
我试图在每次 jquery mobile 将新页面加载到应用程序时运行一个函数,但目前,代码仅在页面加载的第一个实例上运行一次。
HTML:
<div id="pageID" data-role="page" class="content_page">
<div data-role="header" data-id="bestHeader" data-position="fixed">
<h1>Header</h1>
</div><!-- end header -->
<section data-role="content">
<h2>Header2</h2>
<p>Content goes here</p>
</section>
<div class="bottomAd" data-role="footer" data-position="fixed">
<img src="ad2.jpg" width="100%">
</div>
<div data-role="footer" data-id="bestFooter" data-position="fixed">
<nav data-role="navbar">
<!-- navBar here -->
</nav>
</div><!-- end footer -->
</div><!-- end page -->
<div id="pageID2" data-role="page" class="content_page">
<div data-role="header" data-id="bestHeader" data-position="fixed">
<h1>Header</h1>
</div><!-- end header -->
<section data-role="content">
<h2>Header2</h2>
<p>Content goes here</p>
</section>
<div class="bottomAd" data-role="footer" data-position="fixed">
<img src="ad2.jpg" width="100%">
</div>
<div data-role="footer" data-id="bestFooter" data-position="fixed">
<nav data-role="navbar">
<!-- navBar here -->
</nav>
</div><!-- end footer -->
</div><!-- end page -->
Javascript
$(".content_page").live('pageinit', function(event) {
if ($(".bottomAd img[src*=ad]").length >= 1) {
console.log($(".bottomAd img[src*=ad]").length);
$(".bottomAd").remove();
}
无论您在两个页面之间来回点击多少次,console.log 只会被调用一次,并且 .bottomAd 类会在页面的第一个实例被点击时被删除。我希望每次调用页面时都运行该函数,因此每次检查“页面”时是否在该特定页面的底部广告 div 中具有包含“广告”的 src 的图像,如果是,则将其删除.
【问题讨论】:
-
使用
pageshow而不是pageinit -
好的。我现在知道了。加载第一页时,它会从两个页面中删除 div .bottomAd,因此,调用第二页时没有带有 img[src*=ad] 的 div。有没有办法让代码只检查为包含 img[src*=ad] 的 div 加载的页面,如果是这样,只从该页面中删除 div?
-
@JohnHancock 查看我的回答,我对此提出建议。
标签: jquery-mobile