0

そのため、以前に同様の質問をしましたが、数時間後に使用しようとしたときに、使用方法が正確にわかりませんでした。私は次のように言われました。

$(element).removeClass('active');
$(element).data('removed-class', 'active');

さらに、次を使用して取得できます

var removeClass = $(element).data('removed-class');

では、それを機能させるための最も「クリーンな」方法は何でしょうか?

したがって、基本的に、7<li>行あり、ランダムに3行が<li>「アクティブ」なクラスを持っている場合。

ここで、たとえば<li>withからすべての「アクティブな」クラスを削除する関数を実行すると、クラスが削除されたのと同じ「アクティブな」クラスを復元​​するにはどうすればよいですか?$("li").removeClass("active")<li>

乾杯

4

2 に答える 2

1

これを試してみて、法案に適合するかどうかを確認してください。

var $listItems = $('li','#wrapper');

function clsToData (elements, cls) {
    $(elements).each(function(){
        var $this = $(this);
        if($this.hasClass(cls)){
            $this.removeClass(cls).data('removed-class',cls);
        }
    });
}

function restoreRemovedClasses (elements) {
    $(elements).each(function(){
        var $this = $(this);
        $this.addClass($this.data('removed-class'));
    });
}

$('button','#buttons').on('click',function(){
    var $this = $(this);
    switch ($this.attr('id')){
        case "button1":
            clsToData($listItems,'active');
            break;
        case "button2":
            restoreRemovedClasses ($listItems);
            break;
    }
});

http://jsfiddle.net/rA5aF/

于 2013-08-12T19:57:25.280 に答える
0
$("li").addClass($("li").data('removed-class'));

liただし、DOM 内のすべての要素ではなく、適切な要素をターゲットにする必要があります。

于 2013-08-12T19:26:44.863 に答える