0

すべてのフィールドとcssクラスに読み取り専用が設定されたページに、動的に生成された大量のフォームがあります。各フォームにはアンカータグに独自の編集ボタンがあり、クリックすると removeClass() と attr('readonly', false) を使用して、その編集ボタンに関連するフォームを表示します。ただし、func にクラスのクリック ハンドラーを指定すると、ページ上のすべてのフォームが明らかに表示されますが、これは望ましい結果ではありません。

私は自分で解決策に取り組みたいので、コードは必要ありませんが、誰かが記事や特に私が見たり使用したりする必要のあるものを知っている場合は、すぐに発砲してください!!!

ありがとう

4

2 に答える 2

0

特定のフォームを参照するには、一意の識別子が必要です。

これはいくつかの方法で行うことができます。最も簡単な方法は、各フォームに ID を設定することです。各クリック ハンドラーは特定の ID を見つけることができます。

ただし、このように、ボタンがそれぞれのフォーム内にあると仮定すると、より一般化されたソリューションを実現できます。

<form>
  <!-- your form elements -->
  <button class="edit_button">Edit this form</button>
</form>
<form>
  <!-- your form elements -->
  <button class="edit_button">Edit this form</button>
</form>
<form>
  <!-- your form elements -->
  <button class="edit_button">Edit this form</button>
</form>
<form>
  <!-- your form elements -->
  <button class="edit_button">Edit this form</button>
</form>
.
.
.

等々。

次に、クリック ハンドラーで、フォームであるクリックのターゲット (ボタン) の最初の親を探し、それに応じて処理を行うことができます。

http://api.jquery.com/parent/

于 2012-04-20T13:54:46.433 に答える
0

解決しました!$('.prefRoute').delegate('.editPrefRoute', 'click' , function() { if($(this).parent().siblings('table').hasClass('selected')) { / /DO STUFF HERE $(this).parent().siblings('table').removeClass('selected'); } else { $(this).parent().siblings('table').attr('class ', 'selected'); //DO STUFF HERE } });

于 2012-05-10T10:07:05.420 に答える