从Mootools转换为Jquery

时间:2010-08-20 09:05:32

标签: javascript jquery mootools

我已经开始将我的网站上的代码转换为来自mootols的jquery我想要包含jQuery而不是mootools,然后将我在mootools中使用的一些函数写入jQuery,这样我就可以使用完全相同的代码。我正在使用的一些代码我已经转换了例如:

jQuery.fn.addEvent = jQuery.fn.bind; 

但是我很难做到这些:

$some_node.getElement('.class'); //where $some_node is an element like $(.selector);
$some_node.addClass('class');
$some_node.fireEvent('focus');
_node.setProperty('disabled', 'disabled').addClass('disabled');
$btn_node.removeProperty('disabled').removeClass('disabled');

那里有什么东西吗?

2 个答案:

答案 0 :(得分:2)

假设$some_node是一个jQuery对象,那么jQuery中的等价函数将是

  • getElement('selector')应为find('selector').first(),因为Mootools中的getElement似乎返回第一个元素,因此first用于减少find结果数组一到一个。
  • addClass('class')只是...... addClass('class')。看不清楚为什么你会遇到这个问题。
  • fireEvent('event')应为trigger('event')
  • setProperty('attribute', 'value')应为attr('attribute', 'value')
  • removeProperty('attribute')应为removeAttr('attribute')

当然,两种语言的功能之间几乎肯定存在微妙的差异,其中大多数我都不能指出,因为我不熟悉Mootools。

答案 1 :(得分:0)

以上情况肯定会转换为:

$('.class').addClass('class');

$('.class').live("focus", function(e) {
     //Do something on focus
     //E.g. $(this).attr('disabled', 'disabled').addClass('disabled');
});

或者,如果您只想将文档重点放在该元素上:

$('.class').focus();