MooTools-Core:未捕获TypeError:undefined不是函数

时间:2014-10-15 22:45:04

标签: javascript mootools

我有这个代码功能:

window.addEvent('domready', function() {
    $('myForm').addEvent('submit', function(e) {
        var content = CKEDITOR.instances['comment'].getData();
        $('comment').setProperty('value',content)
        e.stop();
        var log = $('log_res').empty().addClass('ajax-loading');
        this.set('send', {onComplete: function(response) { 
            log.removeClass('ajax-loading');
            log.set('html', response);
        }});
        this.send();
    });
});

我得到:

  

Uncaught TypeError: undefined is not a function

目前正在使用:mootools-core:1.5.1

1 个答案:

答案 0 :(得分:4)

将评论放入答案中。

看起来好像是在.addEvent()的链式结果上调用$ - 这通常是document.id的别名。但是,如果Mootools在jQuery之后被加载,它将不会定义$并且很可能,你在jQuery.fn原型上调用它。

在mootools代码周围使用闭包模式:

(function($){
    $('myForm').addEvent('submit', function(e) {
        var content = CKEDITOR.instances['comment'].getData();
        $('comment').setProperty('value',content)
        e.stop();
        var log = $('log_res').empty().addClass('ajax-loading');
        this.set('send', {onComplete: function(response) { 
            log.removeClass('ajax-loading');
            log.set('html', response);
        }});
        this.send();
    });
}(document.id));

这可确保您的mootools代码中$的值正是您所需要的。

您还可以查看jQuery.noConflict(),以防止jQuery导出到$并仅限jQuery