Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Непонятен код (https://javascript.ru/forum/misc/56470-neponyaten-kod.html)

ninja2 17.06.2015 15:21

Непонятен код
 
Здорова!
Есть код, который генерирует элементы и можно их перетаскивать, я сам код не пойму что там происходит и синтаксис не понятен.
Вот код:
$(
	  function() 
	  {  
        function c() 
		{
          var a = $("#menu a"),
              a = $.map(a, function(b) 
			  {
                var a = $("<input/>", 
				{
                  val: $(b).attr("href"),
                  on: 
				    {
						input: function() {
						  $(b).attr("href", this.value)
						}
				    }
                }),
                    d = $("<input/>", 
					{
                      val: $(b).text(),
                      on: {
                        input: function() {
                          $(b).text(this.value)
                        }
                      }
                    }),
                    c = $("<p/>", {
                      data: {
                        b: b
                      }
                    });
                c.append([a, d]);
                return c
              });
          $("#edit").append(a)
        }
		
		//вызов функции c
        c();
		
        $("#edit").sortable(
		{
          stop: function(a, b) {
            var c = $.map($("#edit p"), function(a) {
              return $(a).data("b")
            });
            $("#menu").append(c)
          }
        });
      });


Что здесь происходит, кто может объяснить?

ninja2 17.06.2015 15:23

Что за функция c() и почему там через запятую идут параметры?
var a = $("#menu a"),
07
	              a = $.map(a, function(b)

Он через запятую еще а= что то, что это за фигня? Это что там двойное присваивание происходит?

А от еще код и снова там идут через запятую параметры
var a = $("<input/>", 
				{
                  val: $(b).attr("href"),
                  on: 
				    {
						input: function() {
						  $(b).attr("href", this.value)
						}
				    }
                })

от здесь не ясно, что такое $(b). b это что тег? У меня в коде нету этого тега. или b это имя переменной в javaScript?
Код запутаный, я хз. не пойму как он работает.

рони 17.06.2015 15:30

ninja2,
может у автора кода спросить? :lol:

ninja2 17.06.2015 15:31

от эта строка что означает?
var a = $("#menu a")

Мы присваиваем в переменную а объект jquery в котором что находится элементы с блока <div> c айди menu и все ссылки?

tsigel 17.06.2015 15:31

ninja2,
берем "#menu a", и создаем столько же p в котором 2 инпута.
потом то что получилось кладем в "#edit"

потом $("#edit").sortable( - какой-то плагин. Лень искать что он делает и зачем.
Тому кто код писал - руки оторвать)

tsigel 17.06.2015 15:31

Цитата:

Сообщение от ninja2
от эта строка что означает?
var a = $("#menu a")

Мы присваиваем в переменную а объект jquery в котором что находится элементы с блока <div> c айди menu и все ссылки?

да

ninja2 17.06.2015 15:31

Цитата:

Сообщение от рони (Сообщение 375452)
ninja2,
может у автора кода спросить? :lol:

Нету автора, нужно самому разобратся и изменить код.

tsigel 17.06.2015 15:32

Цитата:

Сообщение от ninja2
Нету автора,

Этот код породила вселенная)

ninja2 17.06.2015 15:34

Цитата:

Сообщение от tsigel (Сообщение 375455)
ninja2,
берем "#menu a", и меняем его на p в котором 2 инпута.
потом то что получилось кладем в "#edit"

потом $("#edit").sortable( - какой-то плагин. Лень искать что он делает и зачем.
Тому кто код писал - руки оторвать)

плагин делает Drag Drop, там можно брать input поля и перемещать относительно друг друга.

рони 17.06.2015 15:35

ninja2,
вот как это начиналось http://javascript.ru/forum/jquery/56...tml#post375084


Часовой пояс GMT +3, время: 04:45.