1

HTMLには、次のように定義されたボタンがあります。

<button type="button" onclick="toggleEdit();">Edit</button>

ページの最後に、私が取り組んでいる次のスクリプトがあります。

<script language="JavaScript">
  <!--
  function toggleEdit() {
    var btn = $(this);
    var li = btn.parent();
    var textArea = li.children('.readOnly');
    ...
  }
  //-->
</script>

スクリプトでクリックしたボタンを参照できません。変数はオブジェクトですが、btnそれ以外はわかりません。

私はこのアプローチを使用しているインターネット上の多くの例を見つけました:

$(document).ready(function () {
   $('#buttonID').click(function () {
   ...

IDただし、ボタンは動的に追加されるため、経由で参照することはできません。それで、どうやってそれを参照するのですか?ありがとう。

4

2 に答える 2

2

this念のため、実際の関数ではなく、ボタンを参照するコードを指定する必要があります。

これを行うには、関数に引数を追加するだけですtoggleEdit

新しいHTMLは次のようになります(applyまたはcall関数は必要ありません):

<button type="button" onclick="toggleEdit(this);">Edit</button>

次に、新しいJavaScriptは次のようになります。

<script language="JavaScript">
  <!--
  function toggleEdit(t) {
    var btn = $(t);
    var li = btn.parent();
    var textArea = li.children('.readOnly');
    ...
  }
  //-->
</script>
于 2013-02-05T03:48:04.933 に答える
1

イベントを関数に渡して、それを使用できます。

<button type="button" onclick="toggleEdit( event );">Edit</button>

target次に、関数で、イベントのを取得できます。

function toggleEdit( e ) {
    var btn = $( e.target );
    var li = btn.parent();
    var textArea = li.children('.readOnly');
    ...
}
于 2013-02-05T03:49:51.850 に答える