10

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

我有以下函数声明:

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

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

出于某种原因,“create-discussion”按钮的第一个函数声明效果很好;单击时,会出现一个弹出窗口。但是,第二个不起作用,当我单击表格行时不会生成弹出窗口。

这是关于按钮 onClicks 与表格行 onClicks 的一些细微差别吗?我错过了一些愚蠢的事情吗?

另外,我认为如果有人解释$(function() {})实际做了什么会有所帮助,就像我对待它一样$(document).ready(),我不确定我是否能做到这一点。

4

2 回答 2

13

美元符号 ( $) 实际上是jQuery函数的别名。并且根据文档,如果您将回调作为参数传递给此函数,它将在 DOM 就绪时执行

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

于 2011-06-03T17:21:25.197 回答
4

只要您的选择器文本“#listitems tr”具有可供选择的有效内容,您所做的就应该有效。

您可以通过执行测试...如果结果为 0,则表示 jQuery 未找到任何有效项目

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

当您拨打电话时

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

您正在将点击事件绑定到页面上的所有 <a> 标记。你可以很好地做同样的事情......

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

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

$("a").click();

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

希望这能回答你的问题。

于 2011-06-03T17:25:15.500 回答