【问题标题】:jQuery Dollar Sign ConfusionjQuery 美元符号混淆
【发布时间】:2011-09-07 23:53:11
【问题描述】:

我对 jQuery 中的美元符号有点困惑,希望有人能帮助我。

我有以下函数声明:

$(function() {
    $( "#create-discussion" ).button().click(function() {
        alert("Clicked");
    });

    $( "#listitems tr" ).click(function(event) {
        alert("clicked");
    });
});

出于某种原因,“创建讨论”按钮的第一个函数声明完美运行;单击时,会出现一个弹出窗口。但是,第二个不起作用,当我点击表格行时没有弹出窗口。

这是关于按钮 onClicks 与表格行 onClicks 的一些细微差别吗?我错过了什么愚蠢的显而易见的东西吗?

另外,我认为如果有人解释 $(function() {}) 的实际作用会有所帮助,因为我将其视为 $(document).ready(),我不确定我是否可以这样做。

【问题讨论】:

  • 这正是文档就绪事件处理程序的捷径。两者在功能上是等价的。也就是说,这不是你的问题。
  • 尝试将$("#listitems tr") 转换为$("#listitems tr td")。 (只是一个想法。)
  • 绑定 $("#listitems tr") 处理程序时是否存在表行?请记住,事件处理程序传统上仅适用于当前元素。如果您想要一个适用于未来元素的工具,则需要使用实时处理程序 (api.jquery.com/live)。
  • button() 函数是怎么回事?
  • Mike,我想你可能已经搞定了——在调用此代码之后,我的表会动态填充服务器查询方式。查看您现在提到的实时处理程序链接。 :) 请提交答案,以便我给你信用!

标签: javascript jquery events onclick dollar-sign


【解决方案1】:

美元符号 ($) 实际上是 jQuery 函数的别名。而根据the documentation,如果您将回调作为参数传递给此函数,它将在 DOM 准备好时执行

当涉及到问题的第二部分(关于为什么代码的第二部分不起作用)时:只需检查选择器。对我来说它工作得很好(参见jsfiddle - 它没有.button() 方法,因为我没有加载jQuery UI),所以这可能是由不正确的选择器引起的。

【讨论】:

    【解决方案2】:

    只要你的选择器文本“#listitems tr”有有效的选择,你所做的就应该有效。

    你可以通过做来测试...如果结果为 0 表示 jQuery 没有找到任何有效的项目

    alert($("#listitems tr").length);
    

    当您拨打电话时

    $("a").click(function(evt) { alert("hello world!"); });
    

    您正在将点击事件绑定到页面上的所有 标记。你也可以用 ... 做同样的事情

    $("a").click(myFunc);
    function myFunc(evt) { alert("hello world!"); }
    

    点击函数可以附加到任何 html 元素。它不必是按钮,也可以是 、 等。该元素甚至不必是可见的,但只有在调用实际事件时才能触发点击...

    $("a").click();

    $("...") 只是键入 jQuery("...") 的简写

    希望这能回答您的问题。

    【讨论】:

      猜你喜欢
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多