Непонятен код
Здорова!
Есть код, который генерирует элементы и можно их перетаскивать, я сам код не пойму что там происходит и синтаксис не понятен. Вот код: $( 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) } }); }); Что здесь происходит, кто может объяснить? |
Что за функция 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? Код запутаный, я хз. не пойму как он работает. |
ninja2,
может у автора кода спросить? :lol: |
от эта строка что означает?
var a = $("#menu a") Мы присваиваем в переменную а объект jquery в котором что находится элементы с блока <div> c айди menu и все ссылки? |
ninja2,
берем "#menu a", и создаем столько же p в котором 2 инпута. потом то что получилось кладем в "#edit" потом $("#edit").sortable( - какой-то плагин. Лень искать что он делает и зачем. Тому кто код писал - руки оторвать) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
ninja2,
вот как это начиналось http://javascript.ru/forum/jquery/56...tml#post375084 |
Цитата:
|
Цитата:
|
рони,
код не проходит проверку esLint) Запутано очень конечно. Хотя вы же это пишите людям как примеры, а они вставляют в проекты без изменения) |
KosBeg,
ну а мне лень гугл открыть) |
блииииин...
я хотел упростить его читаемость - $(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) } }); }); Цитата:
|
Цитата:
|
*!*var a*/!* = $("#menu a"), *!*a*/!* = $.map(a, function(b) { *!*var a*/!* = $("<input/>", пойду выпью валерьянки :-? |
код : нашли ссылки создали столькоже тегов p ;
в p положили два инпута для редактирования ссылки на p навесили драг-дроп перемещаются p, меняется и порядок ссылок. всё |
А как можно посмотреть что в объекте находится, содержимое типо на экран вывести. От например код:
var a = $("#menu a") и я хочу вывести на экран что там в объекте. |
Цитата:
|
Ладно щас буду тестить-разбирать. Не такой и простой этот JavaScript как показалось сразу :)
|
|
ninja2,
console.log(a) |
Цитата:
пишет а не найдено. Создал а в глобальной области тоже пишет что не найдено. function ff() { var a = $("#menu a"); // console.log(a); } ff(); var a = $("#menu a"); Так что никак нельзя посмотреть что у меня находится в объекте? |
ninja2,
Google Chrome нажать F12 запустить код <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script> $(function() { function c() { console.log("#menu a", $("#menu a")) } c(); }); </script> </head> <body> <div id="menu"> <a href="#dfdf">1df</a> <a href="#fgg44">2fsdfsd</a> <a href="#Df324">3dsfdsf</a> <a href="#dfs33">4sdfsdf</a> </div> </body> </html> |
Цитата:
function ff() { var a = $("#menu a"); alert(a.context); var s; for (var p in a) s+=p+" "+a[p]+"<hr>"; document.write(s); // alert(s); } ff(); А где в этом объекте сами ссылки хранятся, там выводится всякая фигня. Как мне получить доступ к ссылкам и вывести их в другой блок c id="blok". что сделать тупо $("#blok").append(a) ? Вообще как доступ к элементам получит, толку что кучу функций вывело, ссылок я так и не нашел. Как мне изменить ссылки, это через методы изменять? |
ninja2,
a[0] первая ссылка a[1] вторая ... |
|
от код выше
a = $.map(a, function(b) { var a = $("<input/>", { val: $(b).attr("href"), on: { input: function() { $(b).attr("href", this.value) } } }), Что такое function(b) это что за b это пустой объект, его нигде в коде нету. |
ладно почитаю за jquery функции что там есть.
|
от не пойму этот от код:
var a = $("<input/>", { val: $(b).attr("href"), on: { input: function() { $(b).attr("href", this.value) } } }) Создается объект Jquery тег <input>, ок, val - это атребут value, а что такое on? и почему там скобки идут? И что такое внутри input: ???? |
ninja2,
on - список событий, которые хочется обработать, input - событие вставки изменения содержимого - событие-input |
Часовой пояс GMT +3, время: 15:19. |