jquery mobile 页面渲染是什么意思
在JQUERYMOBILE里有很多的事件。pagebeforeshow事件==在在页面渲染之前.pageshow事件==在页面渲染之后.请教渲染到底是什么意思?是指转化d...
在JQUERY MOBILE里有很多的事件。
pagebeforeshow事件 == 在在页面渲染之前.
pageshow事件== 在页面渲染之后.
请教渲染到底是什么意思?是指转化data-theme属性吗。比如给data-theme-a
的元素加上相应的类名? 展开
pagebeforeshow事件 == 在在页面渲染之前.
pageshow事件== 在页面渲染之后.
请教渲染到底是什么意思?是指转化data-theme属性吗。比如给data-theme-a
的元素加上相应的类名? 展开
2个回答
展开全部
是因为你的渲染方式不对,按以下方法进行渲染:
一、使用jqm样式
jqm在初始化页面时会根据data-xxx在各元素中插入jqm的属性和类等。在页面初始化结束后,如果动态的插入一个元素,往往显示很丑陋,因为没有插入jqm的样式。这个可以用浏览器里的开发工具来查看,会发现有些元素多了很多类,而动态插入的元素代码还是你写的那样子。
如果要使动态插入的元素具有jqm的样式,可以对jqm对象触发create事件:
[javascript] view plaincopy
<span style="font-size:18px;"> $(selector).trigger('create');</span>
create事件适用范围广,甚至可以是 不存在的元素(raw markup?),比如要插入一个按钮
[javascript] view plaincopy
$('<a data-role="button">dy button</a>').appendTo('#content').trigger('create');
有些对象提供了refresh 方法,如listview、flip toggle。与create的区别是refresh方法需要作用在已存在的对象上,如:
$('ul').listview('refresh'),而且refresh只会去更新新加入的元素,如listview里最新append的元素会更新,原有的保持不变。
二、不使用jqm样式:
如果不希望jqm自动初始化你的元素,有两种方法。加入data-role="none"属性,或者在mobileinit事件中对keepNative选项进行配置
[javascript] view plaincopy
$(document).bind('mobileinit',function(){
$.mobile.page.prototype.options.keepNative = "select, input.foo, textarea.bar";
});
一、使用jqm样式
jqm在初始化页面时会根据data-xxx在各元素中插入jqm的属性和类等。在页面初始化结束后,如果动态的插入一个元素,往往显示很丑陋,因为没有插入jqm的样式。这个可以用浏览器里的开发工具来查看,会发现有些元素多了很多类,而动态插入的元素代码还是你写的那样子。
如果要使动态插入的元素具有jqm的样式,可以对jqm对象触发create事件:
[javascript] view plaincopy
<span style="font-size:18px;"> $(selector).trigger('create');</span>
create事件适用范围广,甚至可以是 不存在的元素(raw markup?),比如要插入一个按钮
[javascript] view plaincopy
$('<a data-role="button">dy button</a>').appendTo('#content').trigger('create');
有些对象提供了refresh 方法,如listview、flip toggle。与create的区别是refresh方法需要作用在已存在的对象上,如:
$('ul').listview('refresh'),而且refresh只会去更新新加入的元素,如listview里最新append的元素会更新,原有的保持不变。
二、不使用jqm样式:
如果不希望jqm自动初始化你的元素,有两种方法。加入data-role="none"属性,或者在mobileinit事件中对keepNative选项进行配置
[javascript] view plaincopy
$(document).bind('mobileinit',function(){
$.mobile.page.prototype.options.keepNative = "select, input.foo, textarea.bar";
});
2015-02-12
展开全部
渲染 你可以这样理解, 我们做一个汽车,开始是没有喷漆的(没有css) 只是些框框架架(HTML标签)。那么网页加载就是首先加载完HTML元素,其次是css,css去遍历渲染每个对应元素的样式让其看起来就是我们所想看到的效果一样。不同浏览器的渲染方式不一样,渲染机制也不一样。
简单来将一个完整的HTML页面渲染完成是有2个东西的。一个HTML元素加载完成,一个是CSS样式加载完成。其次才是JS,如果JS写在页面顶部在css元素加载之前 那就会在其执行完后在执行后面的渲染,会让页面的加载断断续续。所以现在很多JS都是建议放在页面</body>之前 而不是在header里。更不能放在样式加载之前。
简单来将一个完整的HTML页面渲染完成是有2个东西的。一个HTML元素加载完成,一个是CSS样式加载完成。其次才是JS,如果JS写在页面顶部在css元素加载之前 那就会在其执行完后在执行后面的渲染,会让页面的加载断断续续。所以现在很多JS都是建议放在页面</body>之前 而不是在header里。更不能放在样式加载之前。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询