0

JavaScript で要素にイベントをアタッチしたいのですが、問題は、パラメーターなしの単純なイベント アタッチメントしかわかっていないことですが、ここではthis、以下に示すようなパラメーターを使用してイベントをアタッチしたいと考えています。

element.addEventListener("onclick", 
                         function RemoveDirectory(this) {
                            alert(this);
                    });

ここはもちろんthis参照する必要があります。element

編集

Jquery を使用してみましたが、要素が DOM から選択されていないため、動的に作成された要素であるため、$("selector").click()動的に作成された要素で Jquery のメソッドを使用する方法を教えてください。document.createElement("input");

jquery 1.7.2 NO LUCKでこれを試しました

<script 
      src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" 
      type="text/javascript" language="javascript">
</script>

<div id="diver">
        Hello events !
</div>

<script type="text/javascript" language="javascript">
        var btn = document.createElement('INPUT');
        btn.type = 'button';
        btn.value = "CLICK me";

        document.getElementById("diver").appendChild(btn);
        $(document).on('click', btn, function () {
            alert(this.value);
        });
</script>

これに関する問題は

  1. 動的に追加されたボタンのみではなく、ドキュメント全体にイベントが追加されます。
  2. thisキーワードはdocument、動的に追加されたボタンのみの代わりに参照します。
4

3 に答える 3

1

on()jQueryのメソッドを使用することができます

$('#parent').on('click', 'input', function(){});

親がわからない場合は、document代わりに使用できます。

または、要素の作成後にハンドラーをバインドできます

$(document.createElement('input')).click(function(){});
于 2012-08-08T13:06:49.413 に答える
1

動的に作成された要素でイベントを追加します。jQuery.onで試してください

$(document).on('click','selector', function() {
  // here add your function
});

ここで、セレクターは動的に作成された要素になります。

注: jQuery1.7が必要です

于 2012-08-08T13:07:22.953 に答える
-1

クロージャを使おうとしましたか?

var someRandomVariable = this;
element.addEventListener("onclick", function() {
    console.debug(someRandomVariable); //=> this
});
于 2012-08-08T12:55:03.650 に答える