6

我一直在寻找很长一段时间没有任何运气的主题,如果我错过了一个较旧的线程,请指出我正确的方向。

我想要达到的目标:

拥有多个节点的常规视图并通过按下节点内的按钮(或其他任何东西)使 jQuery 以任何方式与该特定节点交互。前任。使隐藏的 div 出现。

我面临的问题是对于初学者来说,我仍然发现很难将 jQuery 与 D7 一起使用。我之前一直在使用 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 类的对象来切换标志。

第一个代码有效,但数字增加了小数(2.453、3.4123 等),而不是我计划的 1、2、3、4。但主要问题是这两个代码都对列表中的每个节点产生影响。我知道这是因为列表中的每个节点都具有相同的节点模板,因此具有相同的类,但我想使用jQ 中的节点 ID。

任何领先的答案都会拯救我的一天!=)

4

1 回答 1

3

我会使用.closest()and.find()方法。这将允许您仅定位包含刚刚单击的按钮的父节点,以便您可以仅查找和更改该节点的子元素。这是一些快速的伪代码,展示了它是如何工作的。

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