在JavaScript中附加参数化事件

时间:2012-08-08 12:49:12

标签: javascript html

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

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

此处this当然应该引用element

修改

我尝试使用Jquery但由于没有从DOM中选择元素它是一个动态创建的元素,有人可以告诉我如何使用Jquery的$("selector").click()方法与动态创建的元素通过{{1创建}}

我试着用jquery 1.7.2 NO LUCK

document.createElement("input");

问题是

  1. 事件被添加到整个文档,而不是仅添加动态添加的按钮。
  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> 关键字仅指this而不是动态添加的按钮。

3 个答案:

答案 0 :(得分:1)

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

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

如果您不知道父母,那么您可以改为使用document

或者您可以在创建元素

后绑定处理程序
$(document.createElement('input')).click(function(){});

答案 1 :(得分:1)

使用动态创建的元素添加事件。尝试使用jQuery .on

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

此处 选择器 将是您动态创建的元素。

注意:需要jQuery 1.7

答案 2 :(得分:-1)

您是否尝试过使用闭包?

var someRandomVariable = this;
element.addEventListener("onclick", function() {
    console.debug(someRandomVariable); //=> this
});