带参数的jQuery onclick给出“**未定义”

时间:2010-10-02 12:41:30

标签: jquery function onclick

这是我的Javascript:

function doSomething(fieldActions) {
var Actions = fieldActions;

$(Actions).show("slow");
$(this).hide(); }

这是我的HTML:

<a onclick="doSomething('#date-actions');">edit</a>

参数需要影响和DIV字段。该字段的ID可以是可变的,页面上可以有多个,这就是为什么我需要给它影响的特定字段。 参数“#date-actions”是一个可以调用它的DIV字段的示例。

我在firebug中的错误:

doSomething is not defined

1 个答案:

答案 0 :(得分:1)

目前定义doSomething的地方,它不是全局可访问的函数,例如,如果它位于document.ready处理程序中,则只能在其中访问。您需要公开范围...但即使这样this也不会在函数内引用您想要的内容。


解决这两个问题的更好方法是使用链接本身的href属性,如下所示:

 <a class="edit" href="#date-actions">edit</a>

然后通过给它一个类,就像上面的例子一样,你可以像这样绑定document.ready上的所有链接:

$(function() {
  $("a.edit").click(function(e) {
    $(this).hide();
    $(this.hash).show();
    e.preventDefault();
  });
});

如果动态添加,只需将绑定从$("a.edit").click(function(e) {更改为$("a.edit").live("click", function(e) {