如何防止 jQuery Mobile 在动态注入 html 页面时进行 ajax 调用

发布于 2024-10-19 07:04:59 字数 1202 浏览 1 评论 0原文

我没有使用 ajax 调用,而是创建页面并将其注入到 $.mobile.pageContainer 中。 使用 jQuery 模板动态创建 jQuery Mobile 页面

当我想要访问带有哈希标签的页面(在我的 onReady 函数中生成的标签),jQuery Mobile 尝试进行 ajax 调用。它失败了。当我的 onReady 函数被调用时,我必须检查 url 并调用 $.mobile.changePage() 才能使其显示。

var loc = window.location.href;
var loc = loc.split('#').pop();
if (loc !== "http://lift.pageforest.com/") {
    $.mobile.changePage(loc, 'pop', false, true);
}

这一切都很好,但 jQuery Mobile 仍然进行了失败的 ajax 调用,导致向控制台抛出错误,并向用户显示一个大错误 div。

我尝试将 $.mobileinit 函数 ajaxEnabled() 覆盖为 false,因为我永远不会使用 ajax。 http://jquerymobile.com/demos/1.0a3/#docs/ api/globalconfig.html 不幸的是,这造成了一大堆其他问题。

为什么jQuery mobile自动假设我要使用ajax,而我自己的onReady函数中不会生成任何内容?我该如何解决这个问题?

从这里重新发布: http://forum. jquery.com/topic/how-to-disable-automatic-ajax-calls-when-dynamically-creating-pages

Instead of using ajax calls, I create and inject pages into the $.mobile.pageContainer.
Dynamically creating jQuery Mobile pages using jQuery Templates

When I want to access a page with a hash tag (one that is generated in my onReady function), jQuery mobile tries to make an ajax call. It fails. When my onReady function is called, I have to check the url and call $.mobile.changePage() to make it show up.

var loc = window.location.href;
var loc = loc.split('#').pop();
if (loc !== "http://lift.pageforest.com/") {
    $.mobile.changePage(loc, 'pop', false, true);
}

That's all fine, but jQuery Mobile has still made a failed ajax call resulting in an error thrown to the console as well as a big error div shown to the user.

I tried overriding the $.mobileinit function ajaxEnabled() to false because I will never use ajax.
http://jquerymobile.com/demos/1.0a3/#docs/api/globalconfig.html
Unfortunately that created a whole bunch of other problems.

Why does jQuery mobile automatically assume that I want to use ajax, and I will not generate any content in my own onReady function? How do I work around this?

Reposted from here:
http://forum.jquery.com/topic/how-to-disable-automatic-ajax-calls-when-dynamically-creating-pages

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

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

发布评论

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

评论(1

多情癖 2024-10-26 07:04:59

你可以使用 event.preventDefault(); 吗?

http://api.jquery.com/event.preventDefault/

或者如果您设置 rel= “external”和链接中的 JQ 类选择器将阻止默认的内部链接。

<a href="#mylink" class="hash-link" rel="external">Link</a>

<script>  
$('.hash-link').click(function() {

   var loc = window.location.href;
   var loc = loc.split('#').pop();
   if (loc !== "http://lift.pageforest.com/") {
        $.mobile.changePage(loc, 'pop', false, true);
    }

});
</script>

Can you use event.preventDefault();?

http://api.jquery.com/event.preventDefault/

Or if you set rel="external" and a JQ class selector in your link it will prevent the default internal linking.

<a href="#mylink" class="hash-link" rel="external">Link</a>

<script>  
$('.hash-link').click(function() {

   var loc = window.location.href;
   var loc = loc.split('#').pop();
   if (loc !== "http://lift.pageforest.com/") {
        $.mobile.changePage(loc, 'pop', false, true);
    }

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