Jquery mobile 如何使用主干动态导入css?
我正在开发一个应用程序,使用主干、下划线和jquerymobile。按照jqmobile的方式,我有一个索引页面,它以特殊的Jquery mobile 如何使用主干动态导入css?,jquery-mobile,backbone.js,underscore.js,Jquery Mobile,Backbone.js,Underscore.js,我正在开发一个应用程序,使用主干、下划线和jquerymobile。按照jqmobile的方式,我有一个索引页面,它以特殊的divs标记加载每个访问过的页面,并用属性data role=“page”标记。对于每个页面,我都有相应的样式文件(或嵌入在stylehtml标记中的代码片段)。我的问题是,我的标签上的东西的名字开始发生冲突。另一件事是,我不希望为每个页面加载不必要的样式文件。有没有办法只动态导入当前页面所需的css?一种方法是使用jquery(您90%的用户已经在使用主干网)及其load
div
s标记加载每个访问过的页面,并用属性data role=“page”
标记。对于每个页面,我都有相应的样式文件(或嵌入在style
html标记中的代码片段)。我的问题是,我的标签上的东西的名字开始发生冲突。另一件事是,我不希望为每个页面加载不必要的样式文件。有没有办法只动态导入当前页面所需的css?一种方法是使用jquery(您90%的用户已经在使用主干网)及其load
或get
ajax函数,或者其他任何函数,再加上回调
然后,如果需要,您可以从主干应用程序调用这些函数,并将
标记中的css作为模板插入到文档中
或者我认为还有专门的jquery函数
另一种方法是使用require.js和它的插件(我相信它有
text
plugin,这也可以让你加载你的javascript模板)。我正在用它和插件完成你的要求
以下是我的一个视图中的一个片段:
define([
'jquery',
'underscore',
'backbone',
'views/company/form',
'text!templates/company/company.html',
'css!../../../css/company/company',
], function($, _, Backbone, Form, pageTemplate) {
var Page = Backbone.View.extend({
...
});
return Page;
});
第7行,'css!//css/company/company'
是加载此视图所需的css文件
加载company.css
样式表后,即使加载了其他“页面”,它也会出现在浏览器中,因为没有实际的页面刷新。因此,我让我的主页视图在
元素上切换一个类:
// remove any old route-* classes existing on the html element
$('html').removeClassRegEx(/^route-.*/);
// add in the company's top-level class name
$('html').addClass('route-company');
而公司
页面的所有特定于我的页面样式都适用于.route公司
类
你可以找到那个