【问题标题】:jQuery click(fn) won't work with input elementjQuery click(fn) 不适用于输入元素
【发布时间】:2009-03-26 12:23:10
【问题描述】:

我想使用 jQuery 来检测对一堆单选按钮的点击。它们都被分配了一个 CSS 类 foobar 来检测它们。容易,对吧?不过,这段代码还是不行:

$("input.foobar").click(function ()
{ 
    alert(this.id);
}
);

上面的代码有什么问题?

this.id 真的返回当前单选按钮的 id 吗?

编辑:页面上的 HTML 真的很无聊(不验证),所以也许这就是问题所在......

编辑 2: HTML 一团糟,无法挽救。将不得不顺其自然并修复解决方法。愿 HTML 诸神原谅我!

【问题讨论】:

  • 查看您的 HTML 会很有帮助。
  • "this.id 真的返回当前单选按钮的 id 吗?"是的
  • HTML:

标签: javascript jquery event-handling


【解决方案1】:
$("input.foobar").change(function () {
    alert(this.id);
});

【讨论】:

    【解决方案2】:

    您的代码基本上没有问题,它应该可以工作。但也许 html 会有所帮助,以了解问题所在。

    回答你的第二个问题,是的,'this.id' 是有效的 javascript。

    【讨论】:

      【解决方案3】:

      试试

      $("input.foobar").change(function ()
      

      而不是.click(function ()

      【讨论】:

        【解决方案4】:

        您的代码示例没有任何问题,它按我的预期工作:

        <input type="radio" class="foobar" id="x1" />
        <input type="radio" class="foobar" id="x2" />
        <input type="radio" class="foobar" id="x3" />
        

        单击收音机会显示带有收音机 ID 的警报框。您是否真的点击了框,而不是一些周围的文本或标签元素?

        【讨论】:

        • 是的,它点击了单选按钮。但是我的html中似乎有错误。糟糕的是,即使使用 Firebug,也很难检查 html...
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        • 1970-01-01
        • 1970-01-01
        • 2015-11-16
        • 1970-01-01
        相关资源
        最近更新 更多