0

我想将事件附加到 JavaScript 中的元素,问题是我只知道没有参数的简单事件附件,但在这里我想附加一个带this参数的事件,如下所示

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

这里当然this应该指element

编辑

我尝试使用 Jquery,但由于该元素不是从 DOM 中选择的,它是一个动态创建的元素,有人可以告诉我如何将 Jquery 的$("selector").click()方法与通过创建的动态创建的元素一起使用document.createElement("input");

我用 jquery 1.7.2 试过这个没有运气

<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

你可以使用jQuery的on()方法

$('#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
});

这里的选择器将是您动态创建的元素。

注意: 需要 jQuery 1.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 回答