如何在文本框上附加onclick事件?

时间:2014-04-07 15:07:51

标签: javascript dojo

enter image description here 嗨, 我想附加文本框上的点击事件,附件中的值为A,与B相同。 我正在使用带有以下代码的dojo工具包:

  window.onload = function () {

         dojo.query('.test').onclick(function(){
              alert('test');

            });
};

我有一个具有两个列名称和值的表格控件,两列都包含文本框。在列名称文本框中,我添加了一个名为' test'的表格。表格行动态增加,如附件中所示。 现在我担心的是这些文本框动态增加我如何在这些文本框上附加事件。在单元文本框上这是正常工作但这里表行增加,我怎么能找到具有相同类的特定文本框? 谁能帮我?

2 个答案:

答案 0 :(得分:0)

单独定义功能。

var myFunc = function() {
 alert('test');
};

现在,使用它,附加到文本框(就像你已经完成的那样)

dojo.query('.test').onclick(myFunc);

但是,在添加新行时,您有责任将此功能附加到新添加的文本框中。您可以通过名称" myFunc"。

来引用它

注意: - 再次运行代码片段 - " dojo.query(' .test')。onclick(myFunc);"将为现有文本框添加重复的处理程序。

答案 1 :(得分:0)

如果您要添加大量处理程序,如果屏幕上的信息是动态的,您将需要查看使用委派的事件处理程序。

使用委托,您只添加一个处理程序,这对内存使用更好,您将把处理程序添加到容器,而不是每个特定项目,这意味着项目本身可以安全无需重新附加处理程序即可进行更改。

有关详细信息,我会向您指出这个优秀的答案:What is DOM Event delegation?