есть ли более короткий способ вызвать функцию из подпространства имен в jQuery?

#jquery #namespaces

#jquery #пространства имен

Вопрос:

Я пишу функцию внутри : index.fragment.singleEntry , где я ожидаю вызвать функцию index.fragment.singleEntry.editTitle . Вместо записи полного пространства имен этой функции, есть ли более короткий способ вызвать ее?

Я вызываю: index.fragment.singleEntry.editTitle.load();

внутри: index.fragment.singleEntry.load

Заранее спасибо.

 jQuery.namespace("index.fragment.singleEntry");

index.fragment.singleEntry.load=function(vasId) {
//==================================================
// init GUI components
tinyMCE.init({
    mode : "textareas",
    theme : "simple",
    width: "500",
    height: "300"
    //elements : "editContentTa"
});
initEditControl(vasId);

index.fragment.singleEntry.editTitle.load();
updateGUI_content();

//===================================================
  

Комментарии:

1. Вот почему мы избегаем подобных пространств имен.

Ответ №1:

 index.fragment.singleEntry.load= (function(singleEntry) {

return function(vasId) {
//==================================================
// init GUI components
tinyMCE.init({
    mode : "textareas",
    theme : "simple",
    width: "500",
    height: "300"
    //elements : "editContentTa"
});
initEditControl(vasId);

singleEntry.editTitle.load();
updateGUI_content();

...

})(index.fragment.singleEntry)
  

Завершите свой код замыканием, чтобы сделать определенные переменные локальными. Затем верните вашу функцию.

В качестве альтернативы вы можете вызвать, this.editTable.load() поскольку this в singleEntry.load есть singleEntry

Комментарии:

1. вау! это ПОТРЯСАЮЩЕ! Просто посмотрите на те, которые используют paralesis… Как вы, ребята, до этого додумались!