我想我可以在调用 jQuery Mobile 的 JavaScript 之前添加这个:
$('section').data('role','page');
$('article').data('role','content');
这样我就可以简单地在我的 HTML 中使用<section>
and<article>
标记,而不是指定<div data-role="page">
and <div data-role="content">
。
但我认为它不起作用。
我想我可以在调用 jQuery Mobile 的 JavaScript 之前添加这个:
$('section').data('role','page');
$('article').data('role','content');
这样我就可以简单地在我的 HTML 中使用<section>
and<article>
标记,而不是指定<div data-role="page">
and <div data-role="content">
。
但我认为它不起作用。
你可以这样做:
$('section').attr('data-role','page');
$('article').attr('data-role','content');
为什么需要“数据-”属性?http://api.jquery.com/data/ 它们可能会导致内存泄漏以及其他问题。jQuery 已经有一个内置的“数据”,它正在工作。它不设置数据属性,它使用更好、更有效的方式来存储与 JavaScript 的 DOM 选择器关联的数据。
如果由于某种原因没有内置“数据”,则应该更新 jQuery。这是一个垫片,主要是为了让您了解它是如何工作的。它不是一个完整的填充程序,它只是一种使用数据键元素的选择器存储数据的非常简单的方法。删除元素时我不删除数据,所以我的实现可能会导致内存泄漏。不过,这只是一个例子。
if ($(window).data === undefined) {
$.fn.data = (function () {
var storage = {};
return function data (name, val) {
var id = $(this).selector;
storage[id] = storage[id] || {};
if (val === void 0) {
return storage[id][name];
}
storage[id][name] = val;
return $(this);
}
}());
}
var foo = $('section').data('role','page');
var bar = $('article').data('role','content');
foo.text(foo.data('role'));
bar.text(bar.data('role'));
请注意警报没有运行,所以我的垫片甚至没有被使用..
尝试这个:
头:
<script src="jquery.js"></script>
<script src="YOUR-SCRIPT.js"></script>
<script src="jquery-mobile.js"></script>
你的脚本 JS:
$(document).bind("mobileinit", function(){
$('section').data('role','page');
$('article').data('role','content');
/* OR */
$('section').attr('data-role','page');
$('article').attr('data-role','content');
});
参考:http: //jquerymobile.com/demos/1.2.1/docs/api/globalconfig.html
if ($(window).data === undefined) {
$.fn.data = (function () {
var storage = {};
return function data (name, val) {
var id = $(this).selector;
storage[id] = storage[id] || {};
if (val === void 0) {
return storage[id][name];
}
storage[id][name] = val;
return $(this);
}
}());
}
var foo = $('section').data('role','page');
var bar = $('article').data('role','content');
foo.text(foo.data('role'));
bar.text(bar.data('role'));