Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 17.08.2012, 13:53
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Сообщение от vadim5june Посмотреть сообщение
а почему Вы event не передаете?
topmenu.replace.call(topmenu,"filesload",e,function(u,f){...
...
replace: function(s,evn,e)
                    {
this[s](evn,e);
 }
Спасибо, так и сделал. Видимо я думал, что event глобальный объект, который доступен всегда при обращении к event. Т.е. this[s](event,e), определиться из любого места.

Спасибо еще раз
Ответить с цитированием
  #32 (permalink)  
Старый 21.11.2012, 18:08
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

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

(function ($) {
	var C = function () {
		
			defaults = {
			......
			},
			fillRGBFields = function  (a, b) {
			......
			}

	});
})(jQuery);


Как мне сделать что-то навроде for(i in C) alert(i + " : " + C[i])
Ответить с цитированием
  #33 (permalink)  
Старый 01.01.2013, 23:59
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Подскажите, пожалуйста, а почему

если при инкапсуляции вызвать Блок
return
{
и поставить скобку на новую строку, return не работает
Ответить с цитированием
  #34 (permalink)  
Старый 02.01.2013, 00:07
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от platedz
и поставить скобку на новую строку, return не работает
это особенности . return как раз таки и сработает.
то что возвращает return ,должно быть записано в одну строчку с ним. Иначе, перенос интерпретатор\компилятор воспринимает как окончание команды return, воспринимает как- ;

Последний раз редактировалось dmitriymar, 02.01.2013 в 01:09.
Ответить с цитированием
  #35 (permalink)  
Старый 02.01.2013, 00:39
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Спасибо за ответ.
Я к тому что for if и тд. Нормально обрабатывают блок, когда { на другой строке, а чем return так отличился?

Последний раз редактировалось platedz, 02.01.2013 в 00:48.
Ответить с цитированием
  #36 (permalink)  
Старый 02.01.2013, 01:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от platedz
Я к тому что for if и тд. Нормально обрабатывают блок, когда { на другой строке, а чем return так отличился?
Сообщение от dmitriymar
это особенности .
Сообщение от dmitriymar
то что возвращает return ,должно быть записано в одну строчку с ним.
Сообщение от dmitriymar
Иначе, перенос интерпретатор\компилятор воспринимает как окончание команды return, воспринимает как - ;

что не ясного в ответе,чтоб задавать вопрос повторно ? что это особенность "языка" с return?
чем отличается особенная ситуация от обычной?
тем, что она особенная -она исключение.

Последний раз редактировалось dmitriymar, 02.01.2013 в 01:23.
Ответить с цитированием
  #37 (permalink)  
Старый 02.01.2013, 01:20
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Я понял особенности, просто может еще где-то есть подобные особенности, а я не знаю.
Ответить с цитированием
  #38 (permalink)  
Старый 31.03.2013, 21:44
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Подскажите, как правильно выполнить следующее

for(var i=0; i<document.getElementsByName("my_name").length; i++)
{
	document.getElementsByName("my_name")[i].onkeyup = function(i)
	{
		console.log(i);
	}
}
Ответить с цитированием
  #39 (permalink)  
Старый 31.03.2013, 22:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Сообщение от platedz Посмотреть сообщение
Подскажите, как правильно выполнить следующее

for(var i=0; i<document.getElementsByName("my_name").length; i++)
{
	document.getElementsByName("my_name")[i].onkeyup = function(i)
	{
		console.log(i);
	}
}
Хрестоматийный пример для использования замыканий.

Кстати так:
for(var i=0; i<document.getElementsByName("my_name").length; i++){
	document.getElementsByName("my_name")[i].onkeyup = ...
}
делать не рекомендуется, ибо каждую итерацию цикла у вас сначала идёт получение заново всех элементов ByName("my_name"), затем получение заново длины, а после, в теле цикла, ещё раз получение всех элементов ByName("my_name"). Всё это вещи тратящие вычислительное время. В современных браузерах предусмотрено всяческое кеширование подобных случаев на уровне движка, но я бы не рекомендовал слишком уж полагаться на это.
Более экономичный вариант:
for(var i=0, my_name=document.getElementsByName("my_name"), l=my_name.length; i<l; i++){
	my_name[i].onkeyup = ...
}


P.S. Ну и лично мне больше всего нравится для таких случаев использовать обратный перебор :
var my_name=document.getElementsByName("my_name"), i=my_name.length; 
while(i--){
	my_name[i].onkeyup = ...
}




Пример: Если не разобрались сами с замыканиями.
for(var i=0, my_name=document.getElementsByName("my_name"), l=my_name.length; i<l; i++){
	my_name[i].onkeyup = function(i){
		return function(){
			console.log(i);
		}
	}(i) 
}
__________________
29375, 35

Последний раз редактировалось Aetae, 31.03.2013 в 22:20.
Ответить с цитированием
  #40 (permalink)  
Старый 31.03.2013, 22:14
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Большое спасибо.
Посмотрел пример и вышло так
for(var i=0; i<document.getElementsByName("my_name").length; i++)
{
	document.getElementsByName("my_name")[i].onkeyup = function(x)
	{
		return function(){console.log(x)}; 
	}(i)
}


Не ясно только, почему не выходит так

for(var i=0; i<document.getElementsByName("my_name").length; i++)
{
	document.getElementsByName("my_name")[i].onkeyup = function(x)
	{
		console.log(x)
	}(i)
}


Буду благодарен за разъяснения
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из тектового файла Jackky Общие вопросы Javascript 14 30.06.2012 01:00
Чтение и запись файла kilogram Серверные языки и технологии 0 16.05.2012 23:59
Чтение и запись с txt или csv файла vitaver AJAX и COMET 0 23.12.2010 20:43
Чтение файла средствами javascript DVVID Общие вопросы Javascript 4 05.04.2010 15:00
чтение из случайного файла lesik Общие вопросы Javascript 7 07.07.2008 17:24