0

実際には機能しないこのコードがあります

最初に img div を追加します

$('div.group_title a').prepend("<img src='replace_w_img_link_in_real'  width='20' height='20'  >");

次に、そのdivを選択します

$('.el.group_title a img').on('click', function(e){
  e.preventDefault();
  var img2 = "img_link_path_2";
  var img1 = "img_link_path_1";

  var img = $(this).attr("src");

  if (img == img1) {
    $(this).attr("src",img2);
  } else {
    $(this).attr("src",img1);
  }

  $(this).nextUntil('.el.group_title', '.sidebar_project').toggle();
});

ここでの問題は$('.el.group_title a img')、選択を返すだけで$(this).nextUntil('.el.group_title', '.sidebar_project').toggle(); 、そうするとdivが見つからないことです。

つまり、img div を追加し、その img をクリックすると、img が変化し.sidebar_project、次の img までコンテンツを非表示/表示するという考え方です。変更しようとしまし$(this).nextUntil('.el.group_title a img'たが、うまくいきませんでした

リクエストに応じて、これはベース html です

<div class="el group_title">
  <a href="link_path">NAME</a>
</div>
<div data-project-id="195677" class="sidebar_project">..</div>
<div data-project-id="9844" class="sidebar_project">..</div>
<div class="el group_title">
  <a href="link_path">NAME 2</a>
</div>
<div data-project-id="195677" class="sidebar_project">..</div>
<div data-project-id="9844" class="sidebar_project">..</div>

img divを追加すると

<div class="el group_title">
  <a href="link">
    <img alt="ACME org" src="link" width="20" height="20">org name</a>
</div>
....

これがjsFiddleです-> http://jsfiddle.net/6fdMc/

4

1 に答える 1

0

何をしようとしているのかを正確に伝えるのは難しいですが、解決策の一部は$( this ).closest( ".group_title" ). このようなことをしようとしていますか?これは、コードで変更した部分です。

オリジナル:

$(this).nextUntil('.el.group_title', '.sidebar_project').toggle();

新しい:

$( this ).closest( ".group_title" )

  .nextUntil( ".group_title", ".sidebar_project" ).toggle();
于 2012-08-23T11:34:41.777 に答える