jQuery UI:Object不支持此属性或方法

时间:2013-01-03 11:15:08

标签: javascript jquery jquery-ui internet-explorer

我花了太多时间在Google上寻求帮助并尝试自己修复它。

导致所有问题的代码看起来像这样:

$("#nameBox").dialog({
    "modal":        false,
    "autoOpen":     false,
    "resizable":    false,
    "height":       "auto",
    "width":        350,
    "open":         function(){$("input[name='name']",this).val('');},
    "buttons":      {"Save":function(){
        var current_user = $("input[name='name']",this).val();
    }}
});

在IE8上,我收到一条消息“对象不支持此属性或方法”,这显然是由此行引起的:

        var current_user = $("input[name='name']",this).val();

令我困惑的是对话框打开,这意味着即使这些代码都使用相同的方法,这些代码也会成功执行:

    "open":         function(){$("input[name='name']",this).val('');},

任何形式的帮助都将受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

请注意,this在两种情况下都没有设置为同一个对象。

在您最喜爱的javascript控制台中尝试以下代码:

var test = { "prop1": function(){console.log(this);}, "prop2":{"Save":function(){console.log(this);}}, "prop3": 10}

然后运行test.prop1()test.prop2.Save()。您将看到在第一次尝试时记录了对象test,在第二个示例中,您将记录内部对象prop2

你可以阅读一篇很棒的文章here