Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.11.2011, 18:20
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

как реализовать передачу функции в функцию??
сразу напишу, я не знаю как этот метод называется, поэтому не искал в инете, подскажите как реализовать, или как хоть назывется, что бы мог почитать, в ДЖС слабоват, сильно не ругайте за такой вопрос, столкнулся вот с чем:
есть
var make = (function() {
  куча функций
  ...
  ...
  function test1 (var) { ... } 
  ...
  ...
  куча функций
  return {
    test : function (var){
      test1(var);
    },
    test2 : function (var){
      ololo(var);
    },
  }
}())

вот когда создаешь переменную-функцию, и в конце ретурн, и выбор test1, test2 (make.test1(my_var)) как эта вся конструкция называется?
---
и есле не сложно подскажите, как при помоще этой конструкции мне передать внешнюю функцию во внутырь, или каким то образом указать
make.test ряд действий которые он должен сделать
, к примеру
function ee_nado_peredat() {
  ...
}

var make = (function() {
  ...
  function v_etu_func_nado_peredat () {
    ee_nado_peredat() //вот сдесь что бы выполнила внешнюю функцию
  }
  ...
  return {
    test : function (var){
      test1(var);
    },
    test2 : function (var){
      ololo(var);
    },
  }
}())
Ответить с цитированием
  #2 (permalink)  
Старый 27.11.2011, 18:23
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Параметром...

func_1= function(){
 alert(1);
};
func_2= function(func){
 func();
};
func_2(func_1);
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2011, 18:50
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

что то я не особо понял
Ответить с цитированием
  #4 (permalink)  
Старый 27.11.2011, 18:58
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

все справился спасибо)) так на в придачу, как такая конструкция называется?
var make = (function() {
  куча функций
  ...
  ...
  function test1 (var) { ... } 
  ...
  ...
  куча функций
  return {
    test : function (var){
      test1(var);
    },
    test2 : function (var){
      ololo(var);
    },
  }
}())

Последний раз редактировалось czp, 27.11.2011 в 19:14.
Ответить с цитированием
  #5 (permalink)  
Старый 27.11.2011, 19:25
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

czp, вам нужно почитать про замыкания.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 27.11.2011, 20:13
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

понял))хотя когда то читал замыкание, и уже на этом форуме мне советовал кто то, такой вопрос далеко не убегая, как можно реализовать типо такого??
$('#myplayer').flash({
            'src':'http://www.gdd.ro/gdd/flvplayer/gddflvplayer.swf',
            'width':'230',
            'height':'180',
            'allowfullscreen':'true',
            'allowscriptaccess':'always',
            'wmode':'transparent',
            'flashvars': {
                'vdo':'http://irnika.com.ua/design_company/css/stomacon/irnika_video/tana_pershina.mp4',
                'sound':'50',
         
                'autoplay':'false',
 
            }
        })



что бы я вбивал настройки
к примеру
var make = (function() {
  ...
  return {
    tes1 : function (var){
      test1(var);
    },
    test2 : function (var){
      ololo(var);
    }
  }
}())

make ({
nad_kem__budem_koldovat : document.getElementById('fdf');
4to_budem_delat : { alert('fdfd'),  alert('fdfd2'), alert('fdfd3')};

})

ну и оно мне поставила в нужные места, такое возможно?
Ответить с цитированием
  #7 (permalink)  
Старый 27.11.2011, 20:16
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

czp, а в чём проблема, собственно? Вы передаёте объект, потом просто обращаетесь к полям объекта.

Почитайте вторую, а потом первую книгу из моего списка.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #8 (permalink)  
Старый 27.11.2011, 20:34
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

не получается,((
как можно вложить в одно свойство ряд действий??
только одно могу
var пщ = {
  'delta' : alert('hgh')
}

а мне надо типо такого
var пщ = {
  'delta' : elem.style.position = 'absolute';
             elem.style.border = '2px solid #0f0';
             elem..style.zIndex = 100;
}

ну там не обязательно со стилем, и еше момент можно как то передать во внутырь elem??

Последний раз редактировалось czp, 27.11.2011 в 21:02.
Ответить с цитированием
  #9 (permalink)  
Старый 27.11.2011, 21:05
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

czp, идите читать.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #10 (permalink)  
Старый 29.11.2011, 17:06
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

блин, вообшем не получается, подскажите, уже задрался голову ломать
суть такова:
2 эллемента
el1 = document.getElementById('clickObjects1')
el2 = document.getElementById('clickObjects2')

el1.onmousedown = function() { for_el1(this); }
el2.onmousedown = function() { for_el2(this); }

при движении, или просто когда кнопка нажата(обьект взят), у каждого свое действие,есле бы на всех обьектах одинаковое действие было, то все тогда отлично, но к примеру каждый элем по своему подсвечивается

function for_el1(element) {
  drag.object(element);

  drag.take(function (dragobject) {
    dragobject.style.position = 'absolute';
    dragobject.style.border = '2px solid #0f0';
    dragobject.style.zIndex = 100;
  });
 
  drag.drope(function (dragobject) {
    dragobject.style.border = 'none';
    dragobject.style.zIndex = 0;
  });
}

function for_el2(element) {
  drag.object(element);

  drag.take(function (dragobject) {
    dragobject.style.position = 'absolute';
    dragobject.style.border = '20px solid #fff';
    dragobject.style.zIndex = 100;
  });
 
  drag.drope(function (dragobject) {
    dragobject.style.border = 'none';
    dragobject.style.zIndex = 0;
  });
}


контроллер, которые делает свою работу
var drag = (function() {
  ... // ряд функция и плюшек
  return {
    object : function(element){
               dragobject = element;
     },
    take : function(take){
             onmousedown(take); 
	},
    drope : function(drope) {
	  onmouseup(drope);
	}
  }
}())

так вот в чем вопрос, как мне передать вот эти сами действия которые должны происходить при перетаскивание элема,у каждого свой, хотелось бы такой конструкцией
function for_el1(element) {
  drag.object(element);

  drag.take(function (dragobject) {
    dragobject.style.position = 'absolute';
    dragobject.style.border = '2px solid #0f0';
    dragobject.style.zIndex = 100;
  });
 
  drag.drope(function (dragobject) {
    dragobject.style.border = 'none';
    dragobject.style.zIndex = 0;
  });
}

но оно не совсем работает, так как одновременно срабатывает onmousedown - drag.take и onmouseup - drag.drope, из за того что не правильно передаю подскажите как быть??
drag.take(function (dragobject) {
    dragobject.style.position = 'absolute';
    dragobject.style.border = '2px solid #0f0';
    dragobject.style.zIndex = 100;
  });
 
  drag.drope(function (dragobject) {
    dragobject.style.border = 'none';
    dragobject.style.zIndex = 0;
  });
}

вот этот момент он мне интерпритирует сразу, а мне необходимо что бы он интерпритировал не сразу), как сделать так что бы при нажатие на элем он создовал функции но не интерпритировал их

Последний раз редактировалось czp, 29.11.2011 в 17:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
Как вызвать функцию из функции ? PheonixS AJAX и COMET 7 20.06.2010 09:51
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09
Помогите разобраться в повторным обращении к функции, как её обнулить. AdvoGad Общие вопросы Javascript 0 01.09.2008 11:35
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11