0

jQuery MobileのJavaScriptを呼び出す前に、これを追加できると思いました。

$('section').data('role','page');
$('article').data('role','content');

そうすれば、 andを指定する代わりに、HTMLで<section>and<article>タグを使用することができます。<div data-role="page"><div data-role="content">

しかし、私はそれが機能しているとは思いません。

4

4 に答える 4

3

代わりにこれを行うことができます:

$('section').attr('data-role','page');
$('article').attr('data-role','content');
于 2013-03-21T20:15:00.403 に答える
1

これを試して:

頭:

<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

于 2013-03-21T20:19:38.277 に答える
1

なぜ「data-」属性が必要なのですか?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'));

http://jsfiddle.net/dETuh/1/

アラートが実行されないので、私のシムも使用されていないことに注意してください。

于 2013-03-21T20:45:18.347 に答える
1
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'));
于 2018-05-22T05:43:36.027 に答える