JavaScript/jQuery语法
嗨,伙计们,我想知道为什么$sign必须在程序运行之前。我使用console.log($)并认为它是jQuery选择器对象。但我不明白为什么它需要在那里。请帮忙JavaScript/jQuery语法,javascript,jquery,syntax,Javascript,Jquery,Syntax,嗨,伙计们,我想知道为什么$sign必须在程序运行之前。我使用console.log($)并认为它是jQuery选择器对象。但我不明白为什么它需要在那里。请帮忙 $(function(){ console.log($, 'testing') // when the client clicks SEND $('#datasend').click( function() { var message
$(function(){
console.log($, 'testing')
// when the client clicks SEND
$('#datasend').click( function() {
var message = $('#data').val();
$('#data').val('');
// tell server to execute 'sendchat' and send along one parameter
socket.emit('sendchat', message);
});
// when the client hits ENTER on their keyboard
$('#data').keypress(function(e) {
if(e.which == 13) {
$(this).blur();
$('#datasend').focus().click();
}
});
});
Javascript变量命名规则允许将“$”符号用作有效的变量名。这就是为什么,它充当速记,jQuery使用它 例如:
var a = 10;
console.log(a);
我也会写作
var $ = 10;
console.log($);
jQuery所做的是:
jQuery = {};
$ = jQuery;
所以同样的jQuery对象也可以通过“$”变量访问。它起到速记的作用。如果有两个库试图使用全局“$”作为其对象,则会产生冲突
现在,我们在$()中传递的函数只不过是一个回调。jQuery想知道,您希望在DocumentReady上运行什么代码。因此,它接受函数作为参数。
var $ = function( data){
if(typeof data == "function" ){
// jquery registers this callback to ready event automatically
} else {
// uses the selector, and returns the elements
}
}
// so this will be registered to ready event
$( function(){
alert('hi');
});
// and this will give us the jQuery object with DOM elements
$( "body" );
现在,如果我们将选择器传递给jQuery(“选择器”),jQuery将立即执行该操作
但是,如果函数作为参数传递,jQuery会自动将该函数注册到就绪事件中。因此,此回调在就绪事件时执行。
$(函数(…){…})
相当于$(文档)。就绪(函数(…){…})
…真的。。。。有趣的谢谢你,波罗拉<代码>$不仅仅用于选择DOM元素,它还具有许多函数,具体取决于传递给它的内容。这是一个jQuery对象构造函数,尽管它还有其他用途。请检查这一点,这不是问题所要问的。它询问为什么有$(function(){…})
这个函数是什么is@AndrewLi请不要惊慌。答案总是有编辑的可能。嗯,你的编辑对我来说没有多大意义。这个代码块非常混乱和矛盾。您说过这是一个回调,在文档准备就绪的情况下运行。请证明…@AndrewLi,希望它现在更有意义。您的示例没有在文档就绪的情况下运行。我觉得你把事情复杂化了。jQuery根据传递给“构造函数”的参数类型做不同的事情,但不需要这个示例(它会严重损害解释)