我正在使用新的jquery mobile 1.0 alpha 1版本来构建移动应用程序,我需要能够切换按钮的文本.切换文本工作正常,但只要执行文本替换,css格式就会被破坏.
混乱格式的屏幕截图:http://awesomescreenshot.com/03e2r50d2
<div class="ui-bar">
<a data-role="button" href="#" onclick="Podcast.play(); return false" id="play">Play</a>
<a data-role="button" href="#" onclick="Podcast.download(); return false" id="download">Download</a>
<a data-role="button" href="#" onclick="Podcast.consumed(); return false" id="consumed">Mark Old</a>
</div>
$("#consumed").text("Mark New");
Run Code Online (Sandbox Code Playgroud) 是否有像jQuery Mobile页面的生命周期?就像在init,show,hide/back或任何事件中被触发的事件一样?!
提前致谢!
我正在尝试结合Backbone.js和jQuery mobile的优点.我正在为移动设备开发,我正在尝试开发一个动态列表,用于调试日志消息.想象一下,你有一个控制台窗口,你想把条目放在里面.问题是,在插入新内容后<li>,必须刷新列表$('#myList').listview('refresh').这对我不起作用,我收到此错误:
错误:无法在初始化之前调用listview上的方法; 试图调用方法'刷新'
tagName : 'ul',
id : 'console',
consoleTemplate : _.template($('#console-template').html()),
initialize : function() {
console.log('ConsoleView:init');
this.$el.attr('data-inset', 'true');
this.$el.attr('data-role', 'listview');
this.$el.css('width', '50%');
this.$el.append(this.consoleTemplate());
// für alle Funktionen die mit this arbeiten
_.bindAll(this, 'render', 'addConsoleItem', 'appendConsoleItem');
this.consoleItemCollection = new ConsoleItemCollection();
this.consoleItemCollection.bind('add', this.appendConsoleItem);
this.counter = 0;
this.render();
},
render : function() {
console.log('ConsoleView:render');
var self = this;
_(this.consoleItemCollection.models).each(function(item) {
self.addConsoleItem(item);
}, this);
return this;
},
Run Code Online (Sandbox Code Playgroud)
这是我的控制台视图的摘录.
var view = Backbone.View.extend({
el : 'div',
id : 'content', …Run Code Online (Sandbox Code Playgroud) 对这些方法的使用感到困惑.我知道在初始化期间会调用pageinit,但是在页面呈现期间每次都会调用pageshow.
我有一个主页,使用$ .ajax()为某些部分加载数据.我在pageinit中加载数据.我也只在pageinit中绑定点击和滑动事件.而且,我也注意到当你从另一个页面回来时没有调用pageinit.
还有一个问题,我们使用swipe.js使用轮播.使用pageinit方法时,它无法正确加载.但是,在pageshow方法中加载时工作正常.当我们使用浏览器后退按钮时,可能会调用pageinit的原因是什么.
此外,在确定加载数据,绑定事件等逻辑的位置时,缓存是否有任何作用.最好是有人可以解释说加载主页数据,然后导航并从另一个页面返回.
javascript jquery jquery-mobile cordova jquery-mobile-pageshow
好的,这开始让我疯狂.我现在有几个小时的搜索和搜索,每一个解决方案都不适合我.所以是的,这个问题可能是多余的,但我不能让我的生活得到解决方案.
我有一堆复选框由jquery模板生成,该模板通过knockout.js进行数据绑定.然而,它变得没有风格.Afaik,它是关于jquery mobile的东西,在淘汰赛之前的样式渲染模板,所以它最终没有样式.我尝试了很多方法无济于事,所以我希望有人能看到我做错了什么.
(我使用的是jquery mobile 1.2.0,jquery 1.8.2和knockout 2.2.1)
这是脚本:
<script type="text/javascript">
jQuery.support.cors = true;
var dataFromServer = "";
// create ViewModel with Geography, name, email, frequency and jobtype
var ViewModel = {
email: ko.observable(""),
geographyList: ["Hovedstaden","Sjælland","Fyn + øer","Nordjylland","Midtjylland","Sønderjylland" ],
selectedGeographies: ko.observableArray(dataFromServer.split(",")),
frequencySelection: ko.observable("frequency"),
jobTypes: ["Kontor (administration, sekretær og reception)","Jura","HR, Ledelse, strategi og udvikling","Marketing, kommunikation og PR","Handel og service (butik, service, værtinde og piccoline)","IT","Grafik og design","Lager, chauffør, bud mv.","Økonomi, regnskab og finans","Kundeservice, telefoninterview, salg og telemarketing","Sprog","Øvrige jobtyper"],
selectedJobTypes: ko.observableArray(dataFromServer.split(",")),
workTimes: ["Fulltid","Deltid"], …Run Code Online (Sandbox Code Playgroud) 我最初有这样的div元素..
<body>
<canvas id="pageflip-canvas"></canvas>
<div id="pages">
<section>
</section>
</div>
<script type="text/javascript" src="index.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
但是当我使用JQuery-Mobile运行它就变成了这样
<body class="ui-mobile-viewport ui-overlay-c">
<div data-role="page" data-url="/C:/AppServ/www/guiBook2/index.html"
tabindex="0" class="ui-page ui-body-c ui-page-active" style="min-height: 681px;">
<canvas id="pageflip-canvas" width="1366" height="681"></canvas>
<div id="pages">
<section style="z-index: 1;">
</section>
</div>
<script type="text/javascript" src="index.js"></script>
</div><div class="ui-loader ui-corner-all ui-body-a ui-loader-default"><span class="ui-icon ui-icon-loading"></span><h1>loading</h1></div></body>
Run Code Online (Sandbox Code Playgroud)
如何防止它创建这些DIV我可以使用class css
但额外的div使内容宽度发生变化.
预先感谢
我有一个来自ajax的数组,我需要创建jQuery Mobile Listview.我没有找到这方法,所以有可能吗?
我正在动态插入滑块.问题是,当我动态插入它们时,它们没有jquerymobile的主题.这是我使用的代码:
for (var i = array_colors_available.length - 1; i >= 0; i--) {
$('#insert_colors_slider').append('<div data-role="fieldcontain" ><fieldset data-role="controlgroup"> <label for="slider-8">'+array_colors_available[i]+' : '+'</label><input id=slider-'+i+' type="range" name='+array_colors_available[i]+' value="0" min="0" max="25" data-highlight="true" data-theme=c data-track-theme="f"></fieldset></div>');
if(array_slider_info_value != null) $('#slider-'+i).val(array_slider_info_value[i+1].value);
};
Run Code Online (Sandbox Code Playgroud)

如果我使用JQueryMobile的方法,那么在屏幕上会出现两个滑块:
for (var i = array_colors_available.length - 1; i >= 0; i--) {
$('#insert_colors_slider').append('<div data-role="fieldcontain" ><fieldset data-role="controlgroup"> <label for="slider-8">'+array_colors_available[i]+' : '+'</label><input id=slider-'+i+' type="range" name='+array_colors_available[i]+' value="0" min="0" max="25" data-highlight="true" data-theme=c data-track-theme="f"></fieldset></div>');
$('#slider-'+i).slider();
if(array_slider_info_value != null) $('#slider-'+i).val(array_slider_info_value[i+1].value);
};
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?当我不使用这些方法时,没有主题,当我使用它时,我有两个滑块而不是一个...谢谢!
我正在开发一个JQuery Mobile应用程序.我在页面加载时动态添加HTML.这里显示了一个精简的示例:
var h = "";
for (i=1; i<=5; i++) {
h += "<div>Entry #" + i + "</div>";
h += "<div class='ui-grid-a'>";
h += "<div class='ui-block-a'><input type='button' value='Approve' onclick='return approveButton_Click(this);' /></div>";
h += "<div class='ui-block-b'><input type='button' value='Reject' onclick='return rejectAbuse_Click(this);' /></div>";
h += "</div><hr />";
});
$("#entries", "#myPage").append(h);
Run Code Online (Sandbox Code Playgroud)
我的HTML出现在UI中.但是,按钮不会呈现为典型的JQuery Mobile按钮.相反,它们看起来像传统的HTML按钮.如何获取动态添加的按钮以应用JQuery移动样式?
谢谢
我不想要<a>标签的样式.我发现这样的线程如何"关闭"jQuery Mobile的<select>下拉样式?但我不想加入data-enhance=false我拥有的每一个锚.我也希望linkBindingEnabled能够工作(来自http://jquerymobile.com/demos/1.2.0/docs/api/globalconfig.html),因为它不会向<a>标签添加自定义类.
我可以删除CSS文件中的定义,但我更喜欢以编程方式来完成它.例如,我注释掉.ui-body-c .ui-link(默认链接),但页脚中的链接仍然是增强的.我确信还有其他一些小案例,而且我不想让它变得混乱(尽管有时这是唯一的选择)
基本上,有没有办法禁用元素"选择器"的增强?而不是手动添加data-enhance=false
jquery-mobile ×10
jquery ×8
javascript ×4
css3 ×3
html5 ×2
backbone.js ×1
cordova ×1
css ×1
html ×1
knockout.js ×1
listview ×1