- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 index.html 看起来像这样:
<!DOCTYPE html>
<html class="ui-mobile-rendering">
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta charset="utf-8">
<link rel="stylesheet" href="css/jquery.mobile-1.1.0.min.css" />
<list rel="stylesheet" href="css/app.css" />
<script src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/underscore.js"></script>
<script type="text/javascript" src="js/backbone.js"></script>
<script type="text/javascript" src="js/views/attachmentlist.js"></script>
<script type="text/javascript" src="js/models/attachmentmodel.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script src="js/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/cordova-1.7.0rc1.js"></script>
</head>
<body></body>
</html>
绝对没有这些文件有对 jQuery Mobile 的引用,只有 Index 有。
我的 app.js 文件如下所示:
$(document).live("mobileinit", function () {
console.log('in Mobile Init');
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
// Remove page from DOM when it's being replaced
$('div[data-role="page"]').live('pagehide', function (event, ui) {
$(event.currentTarget).remove();
});
});
某些原因导致“mobile init”触发两次。我不确定它是什么,即使它真的是一个问题,但感觉像是不应该发生的事情。
有什么办法可以解决这个问题吗?
编辑
我实际上只是注意到,如果我将一个简单的“脚本”标签直接放入正文并在那里执行 console.log,它会运行两次......sooo......此代码中的某些内容导致我的整个页面被初始化两次。
事实上,我的整个设置实际上好像加载了两次。我将 console.logs 放在应用程序首次加载时发生的所有事情的链条中,并且一切都发生了两次。
最佳答案
我曾经遇到过类似的事情。对于它的值(value),这就是我解决它的方式:
$(document).bind("mobileinit", function() {
$.extend( $.mobile , {
autoInitializePage: false,
loadingMessage: false
});
});
如果我必须使其适应您的代码,请尝试如下操作:
$(document).live("mobileinit", function () {
console.log('in Mobile Init');
$.extend( $.mobile , {
autoInitializePage: false,
loadingMessage: false
});
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
// Remove page from DOM when it's being replaced
$('div[data-role="page"]').live('pagehide', function (event, ui) {
$(event.currentTarget).remove();
});
});
附带说明一下,您不应该使用 jQuery 的 .live()
函数。根据自己docs :
As of jQuery 1.7, the
.live()
method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use.delegate()
in preference to.live()
.
关于javascript - jQuery Mobile "mobileinit"事件触发两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636266/
我想这是一个简单的问题。 如何在 jQuery Mobile 触发 mobileinit 事件? 我收到一些 Ajax 响应,该响应的设计不很好(以 jQuery Mobile 形式)。我想我必须触发
我想在加载 jQuery mobile 之前通过 AJAX 动态加载页面内容,因此我尝试使用 mobileinit 事件。但它不起作用。这是我的代码,请帮忙
我如何告诉 jquerymobile 推迟执行 mobileinit 直到加载 DOM? 我正在尝试使用模板和 JSON 动态创建页面。我的问题是 JSON 加载时间太长,并且 jquerymobil
这个问题已经有答案了: jQuery mobile form validation with no results (1 个回答) 已关闭 8 年前。 例如,我正在使用 jQuery validati
我的 index.html 看起来像这样:
我有一些 jquery 脚本,我想将其放入插件中。 在我当前的设置中,代码在“mobileinit”处执行,我的 custom.js 文件位于 Jquery.js 和 Jquery Mobile.js
我有一个 overrides.js 脚本,它在我的应用程序中设置默认值,如下所示: $(document).bind("mobileinit", function(){ $.mobile.au
这就是我尝试挂接到 mobileinit 事件的方式: $(document).bind("mobileinit", function() { console.log("Mobile init
我是一名优秀的程序员,十分优秀!