6

私は主題の中で運がないまま非常に長い間探していました。古いスレッドが見つからない場合は、正しい方向に向けてください。

私が達成しようとしていること:

複数のノードを定期的に表示し、ノード内のボタン(またはその他)を押すことで、jQueryはこの特定のノードと何らかの方法で対話します。元。非表示のdivを表示します。

私が直面している問題は、D7と一緒にjQueryを操作するのがまだ難しいと感じている初心者向けです。私はずっと前からjQを使っていましたが、D7と一緒に使うと大きな問題に直面します。

そして最大の問題は...jQを機能させると、div idまたはクラスを介して関数を呼び出すため、リスト/フィード内のすべての表示ノードに影響を与えることです。なぜこれが起こっているのかは理解できますが、私が理解できないのは、ボタンが押されているノードにのみ影響を与えるようにjQを取得する方法です。

これは、特定のコンテンツタイプのノードテンプレート内にこれまでにあるものです。

    <script type="text/javascript">                                         
(function ($) {

 $('.up2').click(function () {
        $('.nummer_dark').text(parseInt($('.nummer_dark').text())+1,0).toFixed(2);
   $('.up2').toggle();


      });

       $('.up').one('click', function() {
        $('.flag-link-toggle').click();once();


      });


})(jQuery);

 </script> 

これは、up2クラスのオブジェクトを押してスパン内の数を増やし、upクラスのオブジェクトを押してフラグを切り替えようとしている例にすぎません。

最初のコードは機能しますが、数は、私が計画した1、2、3、4ではなく、小数(2.453、3.4123など)で増加します。しかし、主な問題は、これらの両方のコードがリスト内のすべてのノードに影響を与えていることです。これは、リスト内のすべてのノードが同じノードテンプレート、つまり同じクラスを持っているためですが、 jQのノードID。

主要な答えがあれば、私の一日を救うことができます!=)

4

1 に答える 1

3

.closest()とメソッドを利用し.find()ます。これにより、クリックしたばかりのボタンを含む親ノードだけを見つけることができるので、そのノードの子要素だけを見つけて変更することができます。これは、それがどのように機能するかを示すいくつかの簡単な疑似コードです。

$('.up2').click(function() {
    $(this).closest('.node').find('.nummer_dark').text();
}
于 2012-10-24T19:22:22.480 に答える