0

私が jQuery で最初に学んだことの 1 つは、Click()関数と、1 つの要素を別の要素に影響を与えることがいかに優れているかということです。しかし、(文書全体に) 項目の配列があり、それが文書全体に散らばっている要素の別の配列全体に影響を与えたい場合はどうすればよいでしょうか?

私の奇妙な考えでは、データ属性を使用することを考えています。ここで非常に単純化されたバージョンを見ることができます: http://jsfiddle.net/Qnzpg/

まず、jsfiddle での私の例には、より良い解決策がたくさんあります。ただし、実際のアプリケーションはもう少し複雑で、この方法が必要です。

データ属性の値を変数として渡し、その変数を共有する要素に影響を与えようとしています (私の例では、クラスを追加することによって):

$("#menu [data-cell]").click(function (e){
    e.preventDefault;

    //make the data value a variable
    var $cell = $(this).data();

    //find the other element with the same data value and add the class named "open"
    $('#pages [data-cell='$cell']').addClass('open');
});

私は非常に長い間jQueryをいじっていますが、専門家を呼ぶのが最善だと感じています。

ここで私は何を間違っていますか?

4

3 に答える 3

1

私はあなたのコードを修正し、正しく動作するようになりました

まず、変数 $cell を連結しなかったため、間違っていると思いますが、属性データセルを取得できないことに気付いた後、次のようなデータセルから値を取得する必要があります。

var $cell = $(this).attr('data-cell');

そのように $cell を連結する必要があります

$('#pages [data-cell='+$cell+']').toggle('open');
于 2013-11-05T02:04:11.397 に答える