关于javascript/jquery语法

关于javascript/jquery语法,javascript,jquery,Javascript,Jquery,我在任何地方都找不到类似这样的语法: var mz = jQuery.noConflict(); mz('#zoom01, .cloud-zoom-gallery').CloudZoom(); 这意味着:jQuery.noConflict()('#zoom01.cloud zoom gallery').CloudZoom() 像这样的: $(window)[this.off?'off':'on']("scroll", fixDiv ); 所以,我想知道以下语法: jQuery.noConfl

我在任何地方都找不到类似这样的语法:

var mz = jQuery.noConflict();
mz('#zoom01, .cloud-zoom-gallery').CloudZoom();
这意味着:
jQuery.noConflict()('#zoom01.cloud zoom gallery').CloudZoom()

像这样的:

$(window)[this.off?'off':'on']("scroll", fixDiv );
所以,我想知道以下语法:

jQuery.noConflict()(语法)
$(窗口)[syntax](语法)
,我还认为可能有类似的东西
$(选择器){syntax}


有人能详细说明一下这些语法吗?

foo['bar']
语法是从对象
foo
获取属性
bar

foo()
是执行函数
foo

您可以根据自己的意愿将它们组合起来。

jQuery.noConflict()
返回一个函数,以便通过
jQuery.noConflict()(语法)
执行结果


$(window)
返回一个对象,这样您可以通过
$(window)[syntax]
从该对象获取属性,如果该属性是一个函数,那么您可以通过
$(window)[syntax](syntax)
foo['bar']
从对象
foo
获取属性
bar

foo()
是执行函数
foo

您可以根据自己的意愿将它们组合起来。

jQuery.noConflict()
返回一个函数,以便通过
jQuery.noConflict()(语法)
执行结果


$(window)
返回一个对象,这样您就可以通过
$(window)[syntax]
从中获取属性,如果属性是一个函数,那么您就可以通过
$(window)[syntax](syntax)

执行它,这只是javascript语法

person.name
person[“name”]

方法也是如此

$(窗口).on(…)
$(窗口)[“on”](…)

第二种方法很酷的一点是,您可以将成员名称设置为变量,例如:

这样做:

var windowMethod = "on";
$(window)[windowMethod](...)

$(window)["on"](...)
$('#zoom01, .cloud-zoom-gallery').CloudZoom();
$(window)[this.off ? 'off' : 'on']("scroll", fixDiv );
var obj = {x:10, y:20};

$(obj)
括号内可以有一个表达式,因此:

$(window)[this.off ? 'off' : 'on']("scroll", fixDiv );
与执行此操作完全相同:

if(this.off)
    $(window).off("scroll", fixDiv);
else
    $(window).on("scroll", fixDiv);
但前者较短

希望这有帮助。干杯


PS:jQuery.noConflict()(语法)
很简单,
.noConflict()
只返回一个函数,然后我们附加一些其他参数来调用它,就像调用任何其他函数一样。

这只是javascript语法

person.name
person[“name”]

方法也是如此

$(窗口)。在(…)
上,
$(window)[on”](…)

第二种方法很酷的一点是,您可以将成员名称设置为变量,例如:

这样做:

var windowMethod = "on";
$(window)[windowMethod](...)

$(window)["on"](...)
$('#zoom01, .cloud-zoom-gallery').CloudZoom();
$(window)[this.off ? 'off' : 'on']("scroll", fixDiv );
var obj = {x:10, y:20};

$(obj)
括号内可以有一个表达式,因此:

$(window)[this.off ? 'off' : 'on']("scroll", fixDiv );
与执行此操作完全相同:

if(this.off)
    $(window).off("scroll", fixDiv);
else
    $(window).on("scroll", fixDiv);
但前者较短

希望这有帮助。干杯


注:
jQuery.noConflict()(语法)
很简单,
.noConflict()
只返回一个函数,然后我们附加一些其他参数来调用它,就像调用任何其他函数一样。

最好从文档开始

许多JavaScript库使用$作为函数或变量名,只是 就像jQuery一样。在jQuery中,$只是jQuery的别名,所以 所有功能均可用,无需使用$。如果您需要使用 jQuery旁边的另一个JavaScript库,返回$back控件 调用$.noConflict()调用另一个库。旧的参考文献 在jQuery初始化过程中保存$;noConflict()只恢复 他们

换句话说,
noConflict()
将变量设置为等于
jQuery
,因此

var mz = jQuery.noConflict();
mz('#zoom01, .cloud-zoom-gallery').CloudZoom();

$(window)["on"](...)
$('#zoom01, .cloud-zoom-gallery').CloudZoom();
$(window)[this.off ? 'off' : 'on']("scroll", fixDiv );
var obj = {x:10, y:20};

$(obj)

noConflict()
不直接使用选择器,它只是一个函数,将特定范围内的jQuery设置为一个变量,这样您就可以拥有多个版本的jQuery(您不应该这样做),或者使用其他库也使用
$
进行某些操作,它不会镜像选择器引擎或其他任何东西,即使乍一看可能是这样,它也只返回
jQuery的一个实例


在javascript中有点表示法和括号表示法,因此可以按如下方式访问对象:

object.propertyName

由于javascript中的所有内容都是一个对象,甚至jQuery方法也可以作为对象访问

$('#element').fadeIn(200);

这是同样的事情,这么做

$(window)['on']("scroll", fixDiv );

$(window).on("scroll", fixDiv );
var event = this.off ? 'off' : 'on';
使用方括号的优点是,它们可以包含任何字符串,甚至变量,或者在本例中是三元语句,或者函数的返回结果

var event = 'on';
$(window)[event]("scroll", fixDiv );

它还使用了
这个
,它在全局范围内是
窗口
,与

$(window)["on"](...)
$('#zoom01, .cloud-zoom-gallery').CloudZoom();
$(window)[this.off ? 'off' : 'on']("scroll", fixDiv );
var obj = {x:10, y:20};

$(obj)
三元语句本身只是一个奇特的条件

var event;

if (this.off) {
   event = 'off';
} else {
   event = 'on';
}
完全一样

$(window).on("scroll", fixDiv );
var event = this.off ? 'off' : 'on';

为编辑的问题添加:

jQuery()
$()
是一个函数,我们可以从括号中看出这一点,所以它类似于

function jQuery(arguments) {
    // do something
}
这可以称为

jQuery(some_arguments);
正如
var$=jQuery
一样,我们也可以做
$()

既然我们知道它是一个函数,那么我们可以这样做是有道理的

$('#element_id')
在内部,jQuery检查我们传递的参数类型,它看到这是一个字符串,它以
#
开头,因此它是一个ID,然后jQuery可以执行
document.getElementById()
并获取DOM元素,同时它将该元素包装在一个新的类似数组的对象中,通常称为jQuery对象

我们还可以传入一个DOM节点、数组、对象或任何其他对象,jQuery尝试找出它是什么,并将该jQuery对象包装起来,以便与其他jQuery方法一起使用,因此:

$({x:10, y:20})