未捕获的类型错误: 对象 #<Object> 没有方法'apply'



jQuery抛出以下错误:

未捕获的类型错误:对象 # 没有方法"应用"

f.事件.调度

h.handle.i

我找到了这些相关帖子,但无法使用它们解决问题:这个,这个和这个。

这是麻烦的代码:

$(document).ready(function(){
$('form.rating').click({
    cancelShow:true,
    callback: function(ui, type, new_value) {
        var values = ui.$form.serializeArray();
        values.push({
            'name': 'rating',
            'value': new_value
        });
        values = jQuery.param(values);
        var msg = ui.$form.attr('update-msg');
        $(msg).removeClass('hidden');
        $(msg).show();
        $(msg).find('div.msg-default').show();
        $(msg).find('div.msg-result').hide();
        $.ajax({
            'type': 'POST',
            'dataType': 'json',
            'url': ui.$form.attr('action'),
            'data': values
        }).done(function(data) { 
            var overall_rating = ui.$form.attr('update-overall');
            if(overall_rating && data['overall_rating']){
                $(overall_rating).html(data['overall_rating']);
            }
            if(msg){
                $(msg).find('div.msg-default').hide();
                if(data['msg']) {
                    $(msg).find('div.msg-result').show();
                    $(msg).find('div.msg-result').html(data['msg']);
                    window.setTimeout(function() {
                        $(msg).addClass('hidden');
                    }, 2000);
                } else {
                    $(msg).addClass('hidden');
                }
            }
            if(data['user_rating'] && data['user_rating']>0) {
                ui.select(parseInt(data['user_rating']));
            }
        });
    }
});
});

有什么想法吗?

编辑:好的,所以我把它剥离为:

$(document).ready(function(){
    $('form.rating').click({
    });
});

它仍然显示相同的错误。这可能与我的jQuery脚本有关吗?它显示的唯一其他信息是这一行,但我认为它没有多大帮助,因为该文件总共有 3 行:jquery-1.7.2.min.js:3

jquery 单击处理程序需要一个匿名函数,如下所示:

$(document).ready(function(){
    $('form.rating').click(function() {
        // go for it!
    });
});

@Ludder很接近,但差了一点。 他是对的,你需要将一个函数作为参数传递给click,但它不一定是匿名的。

a = {myFun: function(){console.log("a");}}
$(document).ready(function(){
    $('body').click(a.myFun);
});

b = function(){console.log("b");}
$(document).ready(function(){
    $('body').click(b);
});

function c () {console.log("c");}
$(document).ready(function(){
    $('body').click(c);
});

所有人都记录了他们的字母表。 您正在传递一个要单击的空对象,请给它一个函数。

相关内容

最新更新