动态分配数据角色属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态分配数据角色属性相关的知识,希望对你有一定的参考价值。
我想在调用jQuery Mobile的javascript之前我可以添加它:
$('section').data('role','page');
$('article').data('role','content');
这样我就可以在我的html中使用<section>
和<article>
标签,而不是指定<div data-role="page">
和<div data-role="content">
。
但我不认为它有效。
答案
你可以这样做:
$('section').attr('data-role','page');
$('article').attr('data-role','content');
另一答案
试试这个:
头:
<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
另一答案
为什么需要“数据”属性? http://api.jquery.com/data/它们可能导致内存泄漏等问题。 jQuery已经有了一个内置的“数据”,它正在运行。它没有设置数据属性,它使用更好,更有效的方法来存储与DOM选择器相关的数据与JavaScript。
如果由于某种原因没有内置'data',你应该更新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'));
注意警报没有运行,所以我的垫片甚至没有被使用..
另一答案
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'));
以上是关于动态分配数据角色属性的主要内容,如果未能解决你的问题,请参考以下文章