jQuery Mobile 中的动态内容?

发布于 2024-10-22 03:24:26 字数 593 浏览 2 评论 0原文

您好 - 我正在测试 jQuery Mobile,有一个问题。我编写了一个简单的 jQuery 插件,可以根据一些参数对一些图像进行动画处理。非常基本的东西。现在,这适用于我外部链接到的任何页面(rel =“external”)。但是,如果我使用内置的 Ajax 驱动的页面导航,则后续页面上不会加载任何图像。有没有办法在 jQuery Mobile 中处理动态创建的内容?

脚本:

$(document).ready(function(){   
  $('#slideshow').rotator(50, 'img');   
});

标记:

...
<div data-role="page">
    <div id="slideshow">
      <img src="images/1.png">
      <img src="images/2.png">
      <img src="images/3.png">
    </div>
</div>
...

Hey there- I'm testing jQuery Mobile and have a question. I wrote a simple jQuery plug-in that animates a few images based on some parameters. Very basic stuff. Now this works on any page I link to externally (rel="external"). However, if I use the built in Ajax-driven page navigation, none of the images load on subsequent pages. Is there a way to work with dynamically created content within jQuery Mobile?

Script:

$(document).ready(function(){   
  $('#slideshow').rotator(50, 'img');   
});

Markup:

...
<div data-role="page">
    <div id="slideshow">
      <img src="images/1.png">
      <img src="images/2.png">
      <img src="images/3.png">
    </div>
</div>
...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

秋凉 2024-10-29 03:24:26

您可以绑定到 pagebeforecreate 事件,该事件将在页面内容最初创建时触发,并从那里启动旋转器:

$(document).ready(function(){
  $("#pageID").live('pagebeforecreate',function(event){
    $('#slideshow').rotator(50,'img');
  });
});

You can bind to the pagebeforecreate event, which will fire when the page content is initially created and start your rotator from there:

$(document).ready(function(){
  $("#pageID").live('pagebeforecreate',function(event){
    $('#slideshow').rotator(50,'img');
  });
});
场罚期间 2024-10-29 03:24:26

您的 document.ready 位于子页面上,当使用 AJAX 加载链接时,仅获取页面 div 并将其放入您的 DOM 中,因此您在 head 中放置的任何 javascript 都不起作用,并且有没有 document.ready,因为 AJAX 永远不会触发它。

Your document.ready is on a subpage and when the link is loaded with AJAX, only the page div is taken and put in your DOM, so any javascript you put there in head does not work AND there is no document.ready, because AJAX never triggers it.

翻身的咸鱼 2024-10-29 03:24:26

如果这些图像是动态创建的,您需要在创建后执行 $('#slideshow').rotator(50, 'img'); ,最有可能在 $.ajax 的回调函数中。

If those images are created dynamically you'll need to do $('#slideshow').rotator(50, 'img'); after they are created, in callback function of $.ajax most likely.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文