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 看起来像这样(不需要应用或调用函数):

<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 回答