Непонятен код
Здорова!
Есть код, который генерирует элементы и можно их перетаскивать, я сам код не пойму что там происходит и синтаксис не понятен. Вот код:
$(
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:13. |