我在一些高级jQuery中看到了这种语法:
$container
Run Code Online (Sandbox Code Playgroud)
如:
$input = $container.find('.fn_this_timeline')
Run Code Online (Sandbox Code Playgroud)
编辑:基于下面的一些评论,只是为了澄清我能看到的'$ container'的第一个实例是在开头创建的:
init: function($container){
var myThing = this,
$input = $container.find('.fn_do_some_calc'),
$submit = $container.find('.fn_do_some_other_calc'),
defaultValue = parseInt($input.val(), 10);
myThing.$container = $container;
Run Code Online (Sandbox Code Playgroud)
以上这条线让我更加困惑:/
我习惯使用这样的jQuery选择器:$('#mySelector').method('etc');
有人能告诉我有什么区别,什么时候适合或适用于'速记'风格?
这不是一些简写,这只是使用Javascript变量.例如,$container变量可能是这样声明的:
var $container = $("#container");
Run Code Online (Sandbox Code Playgroud)
因为它是存储的,所以元素(jQuery对象)是"缓存的"并且可以在不使用jQuery的情况下重复使用并重新遍历DOM以再次找到它(因为它必须每次$("select")都使用它).
$在变量名的开头使用有时对开发人员来说有用,因为它记住它拥有一个jQuery对象而不是一个Javascript元素(就像从中返回的那样)document.getElementById("container");.
根据问题init方法的位置,该行myThing.$container = $container;只是将对象的属性"$ container"设置为$container变量的值.所以对象可能是这样的:
var myObject = {
init: function () {
// blah blah blah
},
$container: undefined
};
Run Code Online (Sandbox Code Playgroud)
运行该init方法后,它会将"$ container"属性设置为某个东西.