[资料] 其他js选择器的MooTools接口

jejwe 2009-03-28
 
/* MooTools */
var divs = $$('div'); 

 /* Sizzle */
Window.$$ = function(selector){ 
   
return new Elements(new Sizzle(selector)); 
} 
//sizzle usage 
var divs = $$('div'); 

 
/* Peppy */
Window.$$ = function(selector){ 
   
return new Elements(new peppy.query(selector)); 
} 

var divs = $$('div');

 

yuan 2009-07-20
似乎可以把jQuery强大的选择器给移植过来

试了一下:
window.$$ = function(selector, context){
	return new Elements(jQuery(selector, context).get());
}

好像还可以呀,不知道会不会有什么副作用。
很喜欢jQuery的选择器。mootools的用起来不太方便:

引用
选择包含ul子节点的li节点(用jQuery这么写:$('li:has(ul)')),在mootools里怎么写?
我是这么写的,有没其它更简单的方法?
$$('li').filter(function(eachLI){
	return eachLI.getElements('ul').length;
})
yuan 2009-07-21
这样一来,moo的$有可能会被覆盖掉,moo1.2.3的$是这样定义的:
if (window.$ == null) Window.implement({
	$: function(el, nc){
		return document.id(el, nc, this.document);
	}
});

但我觉得无所谓了,既然有jQuery的选择器,还用moo的$做什么?

嗯,不知道这样做会有什么弊端,我能想到的就是客户端得多下载一个js库。还有就是也许选择元素的时候,运行效率上会有点问题——纯属猜测。印象中jQuery对JavaScript原生对象的入侵非常少,几乎都是在jQuery这个对象上扩展功能,所以这样移植好像不成问题。
yuan 2009-07-21
发现个大问题,这样一来,估计会影响到很多已有的mootools插件的使用。
yuan 2009-07-22
$的冲突可以通过jQuery.noConflict()解决,$$的冲突还是换个变量名吧,比如$$.jqs(jQuerySelector)。

纳闷怎么就我一个在自言自语……
yuan 2010-02-05
原来早就有答案了:http://mootools.net/blog/2008/12/04/sizzle/
yuan 2010-03-05
Object Oriented jQuery with MooTools
Global site tag (gtag.js) - Google Analytics