Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery美元符号混淆_Javascript_Jquery_Events_Onclick_Dollar Sign - Fatal编程技术网

Javascript jQuery美元符号混淆

Javascript jQuery美元符号混淆,javascript,jquery,events,onclick,dollar-sign,Javascript,Jquery,Events,Onclick,Dollar Sign,对于jQuery中的美元符号,我有点困惑,希望有人能帮我 我有以下功能声明: $(function() { $( "#create-discussion" ).button().click(function() { alert("Clicked"); }); $( "#listitems tr" ).click(function(event) { alert("clicked"); }); }); 出于某种原因,“创建讨论”按钮

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

我有以下功能声明:

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

    $( "#listitems tr" ).click(function(event) {
        alert("clicked");
    });
});
出于某种原因,“创建讨论”按钮的第一个函数声明工作得很好;单击时,会出现一个弹出窗口。但是,第二个不起作用,当我单击表行时,不会生成弹出窗口

这是按钮点击和表格行点击之间的细微差别吗?我是不是错过了一些非常明显的东西

另外,我认为如果有人解释一下
$(function(){})
实际上做了什么,这会有很大帮助,因为我把它当作
$(document).ready()
,我不确定我是否能做到这一点。

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


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

只要选择器文本“#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”)。单击()

$(“…”)只是键入jQuery(“…”)的简写形式


希望这能回答您的问题。

这正是准备好文档的事件处理程序的捷径。两者在功能上是等价的。也就是说,这不是你的问题。只要试着将
$(“#listitems tr”)
转换成
$(“#listitems tr td”)
。(只是想一想。)绑定$(“#listitems tr”)处理程序时,表行是否存在?请记住,事件处理程序通常只处理当前元素。如果你想在将来的元素上运行,你需要使用live Handler()。这个
按钮()
函数有什么用?Mike,我想你可能已经搞定了-调用此代码后,我的表会用服务器查询方式动态填充。查看您现在提到的live Handler链接。:)请提交一个答案,这样我可以给你学分!