2013-03-03 3 views

ответ

1

Прежде всего, это не правильный способ написать плагин JQuery, если это то, что вы пытаетесь сделать. Проконсультируйтесь с jQuery's Plugins/Authoring docs, чтобы узнать правильный путь.


Кроме того, как у вас есть код, теперь вы можете получить доступ к dataColor путем ссылки на родительский объект с помощью ключевого слова this.

Я удаляю код из своего ответа, потому что у вас есть и другие проблемы. Посмотрите ответ @ 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 –

+0

@JohnSmit Марк ваш вопрос решается [принимая этот ответ] (http://meta.stackexchange.com/a/5235/165614) в качестве решения Вашего вопроса. Просто нажмите на галочку в верхней левой части этого ответа (ниже голосов). – Shef

1

Предлагаю вам более общий подход, без участия jQuery. Вы всегда можете создать собственное пространство имен и расширить его.

Прочитать this beautiful article от Addy Osmani для получения дополнительной информации.

Смежные вопросы