Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MooTools核心:未捕获类型错误:未定义不是函数_Javascript_Mootools - Fatal编程技术网

Javascript MooTools核心:未捕获类型错误:未定义不是函数

Javascript MooTools核心:未捕获类型错误:未定义不是函数,javascript,mootools,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 = $

我有以下代码功能:

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();
    });
});
我得到:

未捕获类型错误:未定义不是函数


目前正在使用:mootools核心:1.5.1

将评论放入答案中

它看起来像是在试图调用
$
的链接结果上的
.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

哪一行?这里的潜在问题是在选择器上调用可能未返回对象的方法。例如
log=$('log\u res').empty()…
-如果它找不到id为
log\u res
的dom节点,则在未定义的情况下调用
.empty()
。这同样适用于您的CKEDITOR,因为如果
.instances['comment']
未定义,那么
.getData()
也将被定义。那么-哪一行抛出?此外,如果页面上有jQuery或其他内容,
$.fn.addEvent()
可能未定义。没有足够的信息来解决这个问题。请编辑您的问题并添加更多信息。错误会立即在:
$('myForm')之后抛出。addEvent('submit',function(e){
如果在运行此代码时发生错误,您可能没有id
myForm
,或者$不是mootools而是jquery。请尝试以下操作:
(function($){…domready…}之后的代码(document.id));
这将创建一个闭包,$将是
document.id
的实际值,这是mootools使用的。如果在按submit时发生这种情况,则是ckeditor。是的,确实有效谢谢:D