2013-03-03 76 views
0

我需要你的帮助。 如何在名称空间中使用变量? 事情是这样的:jQuery:命名空间,在另一个使用变量

所有的
$.MyScript = { 
    script: $("script") 
    , dataID: script.data("id") 
    , dataColor: script.data("color") 
    , Alerting: function alerting(){ 
     alert(dataColor); 
    } 
} 
$.Myscript.Alerting; 

回答

1

首先,这不是写一个jQuery插件,以正确的方式,如果这就是你正在尝试做的。请咨询jQuery's Plugins/Authoring docs以了解正确的方法。


除此之外,你的代码的方式,现在您可以通过关键字this引用父对象访问dataColor

我从我的答案中删除了代码,因为您还有其他问题。查看@ dfsq的答案,以解决您的问题。

我只是将我的答案留在这里作为官方文档的参考。

1

在创建对象之前,您无法访问script属性。你可以使用这种模式,而不是:

$.MyScript = (function() { 

    var $script = $("script"); 

    return { 
     script: $script, 
     dataID: $script.data("id"), 
     dataColor: $script.data("color"), 
     alerting: function alerting() { 
      alert(this.dataColor); 
     } 
    } 
})(); 

$.MyScript.alerting(); 
+0

好的,谢谢你dfsq – 2013-03-03 10:08:11

+0

@JohnSmit标记您的提问。[接受这个答案](http://meta.stackexchange.com/a/5235/165614)作为解决你的问题的解决。只需点击该答案左上方的勾号(在投票下面)。 – Shef 2013-03-03 10:13:45

1

我建议你一个更通用的方法,而不涉及jQuery。 您可以随时创建自己的名称空间并对其进行扩展。

阅读this beautiful article by Addy Osmani了解更多详情。

相关问题