2011-10-14 30 views
2

试图让这个(简单!)的jQuery表达MooTools的工作了jQuery Mootools的

的Jquery:

checkCurrentModule = function(){ 
     jQuery(".module ul li.current").prepend("<b class='arrow'></b>"); 
    }; 

这里是我在Mootools的

尝试它
var checkCurrentModule = function(){ 
      var injectModuleli = $$("li.current"); 
      var currentArrow = new Element("<b class='arrow'></b>"); 
      currentArrow.inject(injectModuleli); 
     };  
+0

但是最新的问题是什么?你有没有收到任何错误讯息?脚本错误?一切都很好,你只是想表明这是如何工作的?一些更多的信息会非常好... – oezi

+4

jQuery优于其他所有的东西。它缩短了我的代码,加快了我的完成时间并治愈了我的头皮屑。它不能被转换,但只能被降级。你是异端的。 – Blazemonger

+0

我知道我宁愿在jQuery中这样做,但是当你有一个客户端不想添加库时,你的还挺好。 @oezi我试图让“有效/工作”jQ语句在Mootools中工作。我似乎无法像在我的JQ语句中那样使Mootools语句“预先加入”。 – Starboy

回答

3
var injectModuleli = document.getElement('li.current'); 
var currentArrow = Elements.from('<strong class="arrow"></strong>'); 
currentArrow.inject(injectModuleli, 'top'); 

工作例如:http://jsfiddle.net/NGjgV/

+0

谢谢奥斯卡,但我注意到你的小提琴里有你选择的Mootools“更多”包。你知道我需要具体的功能吗? – Starboy

+1

是的,你需要这个类:http://mootools.net/docs/more/Element/Elements.From –

0

我对mootools不是很熟悉,但我相信下面的代码可以做到你想要的:

var checkCurrentModule = function() { 
    new Element("b", { 
     "class": "arrow" 
    }).inject($$(".module ul li.current"), "top"); 
}; 
+0

我以为这会起作用,但它似乎实际上删除了整个“li.current”,然后没有注入任何东西......这很奇怪。 – Starboy

+0

@Starboy,对,看起来应该切换两个元素。还有一件事我了解了mootools :)我会更新我的答案。 –

5

提供了解决方案为一体的衬垫和具有不依赖于MooTools的-更多:

$$('li.current').grab(new Element('b.arrow'), 'top'); 

(我只想已经加入此作为评论,但我还没有被允许)。