Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.02.2014, 17:00
Аспирант
Отправить личное сообщение для koderman Посмотреть профиль Найти все сообщения от koderman
 
Регистрация: 06.02.2014
Сообщений: 53

Ага. Лучше понял.

-----------

Сообщение от danik.js Посмотреть сообщение

[JS]$.protototype.click = function(callback) {
// callback ссылается на нашу анонимную функцию
// и какая хрен разница если скажем вместо этото у нас тут будет написано
// callback = function() {};
Тоесть function(callback) {} то же самое что и callback = function() {}; ??
Я думал параметр переданный в анонимную функцию возвращает события браузера. Например preventDefault
function(callback) { ("#object").callback.preventDefault;}

А где можно про $.post почитать? Трудновато почемуто находить описания комманд, методов из яваскрипта.
Ответить с цитированием
  #12 (permalink)  
Старый 11.02.2014, 18:24
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от koderman
Тоесть function(callback) {} то же самое что и callback = function() {}; ??
Да нет же.

Я хотел сказать что вот это:
$.protototype.click = function(callback) {
    callback();
};

$().click(function() { alert('abc') });



технически мало чем отличается от:

$.protototype.click = function() {
    var callback = function() { alert('abc') };
    callback();
};

$().click();


Вся лишь разница что в первом случае мы пробрасываем функцию как параметр, а во втором не делаем этого. То есть вся разница только в использовании параметра вместо локальной переменной. А параметр - это тоже переменная. То есть это вообще не затрагивает темы анонимной функции. Вместо функции можно поставить любое значение, например объект.

Если ты посмотришь, то эти два примера идентичны твоим примерам. Но ты пыхтел что мол они пиздец как разные. А тут я показал что они (с точки зрения обсуждаемой темы) одинаковы на все 100%! То есть ты пытался найти разницу там, где ее нет

Сообщение от koderman
Я думал параметр переданный в анонимную функцию возвращает события браузера
Так и есть (ясен пень, тут ни анонимность, ни тип функции роли не играет)

Сообщение от koderman
А где можно про $.post почитать?
Например на api.jquery.com
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #13 (permalink)  
Старый 11.02.2014, 20:38
Аспирант
Отправить личное сообщение для koderman Посмотреть профиль Найти все сообщения от koderman
 
Регистрация: 06.02.2014
Сообщений: 53

Что не правильно в коде?

Когда кликаю на картинку с идентификатором #hier , у неё должен меняться параметр src на адрес другой картинки из массива с идентификатором #eto (картинок там много.) И так при каждом клике на месте #hier должны появляться картинки из #eto.


$("#hier img").click(function() {


	$("#hier img ").attr("src" , $("#eto img").each(function(){
		$("#eto img").attr("src")})      );  
	
});


Проблема ТОЛЬКО В ЭТОЙ СТРОЧКЕ где идёт подмена методом attr
.attr("src" , $("#eto img").each


Вроде передал сюда $("#eto img") адрес текущего параметра src.

----------------------

Без функции, вот так

$("#hier img").click(function() {


	
	$("#hier img ").attr("src" , $("#eto img").attr("src")      );  
	
	
	
	
	});


Вставляется первая картинка из списка. При дальнейших кликах ничего не происходит.
Не могу цикл сделать.

Последний раз редактировалось koderman, 11.02.2014 в 20:50.
Ответить с цитированием
  #14 (permalink)  
Старый 11.02.2014, 20:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

koderman, ты вобще шнягу пишешь. Во-первых, задумайся: раз ты хочешь постепенно переключать картинки, то тебе нужно где-то хранить счетчик, чтобы при клике его увеличивать и менять картинку в соответствии с его значением. Счетчиком может быть к примеру глобальная переменная.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #15 (permalink)  
Старый 11.02.2014, 21:04
Аспирант
Отправить личное сообщение для koderman Посмотреть профиль Найти все сообщения от koderman
 
Регистрация: 06.02.2014
Сообщений: 53

Я слышал что метод each() счётчик делает.

Сейчас попробую.

Надо наверное было this применить, но в глобальную переменную засунуть.

Последний раз редактировалось koderman, 11.02.2014 в 21:08.
Ответить с цитированием
  #16 (permalink)  
Старый 11.02.2014, 22:18
Аспирант
Отправить личное сообщение для koderman Посмотреть профиль Найти все сообщения от koderman
 
Регистрация: 06.02.2014
Сообщений: 53

Я понял в чём проблема, но не могу её решить.
Я не могу занести в глобальную переменную параметр атрибута src.

var newi  =  $("img").each(function () {$(this).attr("src")});


Почему эта строка возвращает элемент массива

var newo = $("#eto img").attr("src");


А эта не возвращает?

var newo = $("#eto img").attr($(this).attr("src"));


Это ведь одно и тоже почти.

Последний раз редактировалось koderman, 11.02.2014 в 23:13.
Ответить с цитированием
  #17 (permalink)  
Старый 11.02.2014, 23:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

koderman, че ты за чепуху пишешь? Забудь про свою jquery, она тебе весь мозг отравила ))
var $images = $("#eto img");
var counter = 0;
$("#hier img").click(function() {
    if (counter == $images.length - 1)
        counter = 0;
    else
        counter += 1;
    this.src = $images[counter].src;
});
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #18 (permalink)  
Старый 11.02.2014, 23:24
Аспирант
Отправить личное сообщение для koderman Посмотреть профиль Найти все сообщения от koderman
 
Регистрация: 06.02.2014
Сообщений: 53

Работает. Но я в jquery разобраться хочу.
И ещё разница в том что в яваскрипте возвращаются номера массива, а в Jquery возвращаются ссылки на файл.
Зачем на велосипеде ездить если можно на самолёте.


Работает. Но я в jquery разобраться хочу.
И ещё разница в том что в яваскрипте возвращаются номера массива, а в Jquery возвращаются ссылки на файл.
Зачем на велосипеде ездить если можно на самолёте.

Темболее что вот так работает

$("#eto img").click(function(){$("#hier img").attr("src" , $(this).attr("src"))});
(Когда кликаю на картинку, эта картинка появляется там где я хочу. Это легче организовать, так как можно использовать слово this которое возвращает адрес куда щёлкнула мышь).

Тоесть в обратном порядке. И это хороший код.
А как я хочу почемуто не получется.

Последний раз редактировалось koderman, 12.02.2014 в 00:54.
Ответить с цитированием
  #19 (permalink)  
Старый 12.02.2014, 00:54
Аспирант
Отправить личное сообщение для koderman Посмотреть профиль Найти все сообщения от koderman
 
Регистрация: 06.02.2014
Сообщений: 53

Этот код делает то что я хочу, но только один раз

$("#hier img").click(function(){$("#hier img").attr("src" , $("#eto img").attr("src"))});
Ответить с цитированием
  #20 (permalink)  
Старый 12.02.2014, 01:09
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

koderman,
разделяйте логику, пишите код так, чтобы часть его можно использовать в дальнейшем
<style>
  #hier img {
    width:40px;
    height: 40px;
  }
</style>
<div id="hier">
  <img src="http://javascript.ru/forum/images/smilies/help.gif">
</div>
<div id="eto">
  <img src="http://javascript.ru/forum/images/smilies/smile.gif">
  <img src="http://javascript.ru/forum/images/smilies/haha.gif">
  <img src="http://javascript.ru/forum/images/smilies/thank_you2.gif">
  <img src="http://javascript.ru/forum/images/smilies/wink.gif">
  <img src="http://javascript.ru/forum/images/smilies/blink.gif">
</div>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script>
  function next(arr) {
    var max = arr.length - 1,
      i = -1;
    return function () {
      i = i < max ? i + 1 : 0;
      return arr[i];
    };
  }

  var images = $("#eto img");
  var image =  next(images);
  $("#hier img").click(function () {
    this.src = image().src;
  });
</script>

добавил картинки, кликать по большой

Последний раз редактировалось Vlasenko Fedor, 12.02.2014 в 01:57.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание iframe в Firefox mrbean11 Firefox/Mozilla 8 02.11.2012 21:23
Какая разница между модулями DOM Level 2 и интерфейсами Node? dump Общие вопросы Javascript 3 09.08.2012 17:22
Какая разница между post запросами jquery и ajax? Rooner jQuery 2 18.06.2012 14:29
Какая разница между определениями функций Nadine Общие вопросы Javascript 1 07.03.2012 16:07