30.05.2012, 09:44
|
Аспирант
|
|
Регистрация: 27.02.2011
Сообщений: 42
|
|
Скрипт выполняется только 1 раз
<body>
<header class="cf">
<div class="logo"><img src="logo.PNG"></div>
<nav>
<ul>
<li id="login"><a id="login-trigger"> Все страницы <span>▼</span></a>
<div id="login-content" >
<form>
<fieldset id="inputs">
<table cellspacing="0" cellpadding="0">
<tr><td width = "70%"></td><td><input type="text" placeholder="Поиск страниц"></td></tr>
</table><br>
<table cellspacing="0" cellpadding="7">
<tr class="all-page-selected-row">
<td width="30%"><a class="title_page">Главная</a></td>
<td width="30%"><div class="url_page"><a class="invis" href="/index">/index</a></div></td>
<td width="30%"></td>
<td><a class="page-editing">Изменить</a></td>
<td> </td>
<td><a class="invis" href="del">Удалить</a></td>
</tr>
<tr class="all-page-selected-row">
<td width="30%"><a class="title_page">Продукция</a></td>
<td width="30%"><div class="url_page"><a class="invis" href="/production">/production</a></div></td>
<td width="30%"></td>
<td><a class="page-editing">Изменить</a></td>
<td> </td>
<td><a class="invis" href="del">Удалить</a></td>
</tr>
</table>
</fieldset><br><br><br>
<div id="form_under_line">
<fieldset id="actions">
<table><tr>
<td width="90%"></td>
<td><div id="closed" class="cancel"> Закрыть </div>
</table>
</fieldset>
</div>
</div>
</li>
<li id="login"><a id="login-trigger2"> Свойства страницы<span>▼</span></a>
<div id="login-content2">
<form method="post">
<input type="text" name="title" value="Заголовок">
<input type="submit">
</form>
</div>
</li>
</ul>
</nav>
</header>
<div style = "border: 1px solid;"><h1>Тестовый текст</h1></div>
</body>
</html>
<script>
//Функция открытия окна: ВСЕ СТРАНИЦЫ
$(document).ready(function(){
$('#login-trigger').click(function(){
$(this).next('#login-content').slideToggle();
$(this).toggleClass('active');
if ($(this).hasClass('active')) $(this).find('span').html('▲')
else $(this).find('span').html('▼')
})
});
//Функция закрытия окна: ВСЕ СТРАНИЦЫ
$(document).ready(function(){
$('div .cancel').click(function(){
$('#login-content').hide(); })
});
//Функция открытия окна: СВОЙСТВА СТРАНИЦЫ
$(document).ready(function(){
$('#login-trigger2').click(function(){
$(this).next('#login-content2').slideToggle();
$(this).toggleClass('active');
if ($(this).hasClass('active')) $(this).find('span').html('▲')
else $(this).find('span').html('▼')
})
});
//Функция закрытия окна: СВОЙСТВА СТРАНИЦЫ
$(document).ready(function(){
$('div .cancel').click(function(){
$('#login-content2').hide(); })
});
//Подсветка параметров ( ССЫЛКА, ИЗМЕНИТЬ, УДАЛИТЬ ) в таблице: ВСЕ СТРАНИЦЫ
$(document).ready(function(){
$('.all-page-selected-row').mousemove(function(){
$(this).css("background","#f2f2f2");
$(this).find('.invis').css("color","#9b9b9b");
$(this).find('.page-editing').css("color","#9b9b9b");
$(this).find('.page-editing').css("border-bottom","1px solid #9b9b9b");
});
});
$(document).ready(function(){
$('.all-page-selected-row').mouseout(function(){
$(this).css("background","#fff");
$(this).find('.invis ').css("color","#fff");
$(this).find('.page-editing').css("color","#fff");
$(this).find('.page-editing').css("border-bottom","1px solid #fff");
})
});
$(document).ready(function(){
var title_page='';
var url_page='';
$('.all-page-selected-row').mousemove(function SelectRow(){
title_page = $(this).find('.title_page').text();
url_page = $(this).find('.url_page').text();
return title_page;
});
$('.page-editing').click(function PageEditing(){
title = title_page;
url = url_page;
line1='<td width="30%"><input type="text" value="'+title_page+'"></td>';
line2='<td width="30%"><input type="text" value="'+url_page+'"></td>';
line3='<td width ="10%"></td><td width="30%"><a class="link-save-page">Сохранить</a></td>';
line4='<td><a class="link-cancel-page">Отменить</a></td>';
data = line1 + line2 + line3 + line4;
$(this).closest('tr').html(data);
//Вот тут начинается проблема. Если "$('.link-cancel-page')" не внутри
//функции $('.page-editing').click(function PageEditing(), то при нажатии
//ничего не происходит. Если внутри, то только 1 раз.
//Как избежать проблемы?
$('.link-cancel-page').click(function(){
back1 = '<td width="30%"><a class="title_page">'+title+'</a></td>';
back2 = '<td width="30%"><div class="url_page"><a class="invis" href="'+url+'">'+url+'</a></div></td>';
back3 = '<td width="30%"></td><td><a class="page-editing">Изменить</a></td><td> </td><td><a class="invis" href="del">Удалить</a></td>';
back = back1 + back2 + back3;
$(this).closest('tr').html(back);
});
});
});
</script>
|
|
30.05.2012, 10:55
|
Аспирант
|
|
Регистрация: 27.02.2011
Сообщений: 42
|
|
Есть кто на форуме?
|
|
30.05.2012, 11:36
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от tuezov52
|
Есть кто на форуме?
|
Нету никого
Сократите ваш код до минимального нерабочего, показывающего вашу проблему, и тогда вам возможно помогут.
Разбираться в вашей простыне кода навряд ли кто-то станет.
PS Если в теме прошло менее суток с момента последнего сообщения, то незачем ее АП-ать. Здесь вам не личная армия, которая по первому вашему зову должна кидаться решать ваши проблемы.
Если хотите особого к себе отношения, и быстрого решения ваших проблем, можете подать заявку на платную консультацию в разделе "Работа"
|
|
30.05.2012, 12:28
|
Аспирант
|
|
Регистрация: 27.02.2011
Сообщений: 42
|
|
Я выложил весь код и указал в комментарии где проблема. Если тут нет людей способных понять в чем ошибка, зачем форум? Если разговор идет о платных услугах, тогда зачем мне консультация? Пожалуйста почту для тех задания и стоимость работ.
Последний раз редактировалось tuezov52, 30.05.2012 в 12:35.
|
|
30.05.2012, 12:35
|
Аспирант
|
|
Регистрация: 27.02.2011
Сообщений: 42
|
|
"PS Если в теме прошло менее суток с момента последнего сообщения, то незачем ее АП-ать. Здесь вам не личная армия, которая по первому вашему зову должна кидаться решать ваши проблемы." - Вы сразу настраиваете на соответствующее отношение своим тоном.
|
|
30.05.2012, 12:57
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
tuezov52,
вы правда думаете, что форум для того, чтобы выискивать ошибки в портянках чужих скриптов? Что-то вроде "чо та лень мне дебажить, пойду на форуме выложу, пусть другие подебажат".
|
|
30.05.2012, 13:02
|
Аспирант
|
|
Регистрация: 27.02.2011
Сообщений: 42
|
|
Вопрос не в том, что лень. Я уже пробовал кучу вариантов и смотрел похожие ошибки. Не нашел ответа и решил спросить у тех кто хорошо знает JS/JQ. Я не прошу поправить скрипт. Натолкните на мысль, что я делаю не так. Не факт, что ошибка вообще в этом месте. МБ я вообще ерунду пишу.
|
|
31.05.2012, 11:55
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
tuezov52,
Попробуйте так
<script>
//Функция открытия окна: ВСЕ СТРАНИЦЫ
$(document).ready(function(){
$('#login-trigger').click(function(){
$(this).next('#login-content').slideToggle();
$(this).toggleClass('active');
if ($(this).hasClass('active')) $(this).find('span').html('▲')
else $(this).find('span').html('▼')
})
});
//Функция закрытия окна: ВСЕ СТРАНИЦЫ
$(document).ready(function(){
$('div .cancel').click(function(){
$('#login-content').hide(); })
});
//Функция открытия окна: СВОЙСТВА СТРАНИЦЫ
$(document).ready(function(){
$('#login-trigger2').click(function(){
$(this).next('#login-content2').slideToggle();
$(this).toggleClass('active');
if ($(this).hasClass('active')) $(this).find('span').html('▲')
else $(this).find('span').html('▼')
})
});
//Функция закрытия окна: СВОЙСТВА СТРАНИЦЫ
$(document).ready(function(){
$('div .cancel').click(function(){
$('#login-content2').hide(); })
});
//Подсветка параметров ( ССЫЛКА, ИЗМЕНИТЬ, УДАЛИТЬ ) в таблице: ВСЕ СТРАНИЦЫ
$(document).ready(function(){
$('.all-page-selected-row').mousemove(function(){
$(this).css("background","#f2f2f2");
$(this).find('.invis').css("color","#9b9b9b");
$(this).find('.page-editing').css("color","#9b9b9b");
$(this).find('.page-editing').css("border-bottom","1px solid #9b9b9b");
});
});
$(document).ready(function(){
$('.all-page-selected-row').mouseout(function(){
$(this).css("background","#fff");
$(this).find('.invis ').css("color","#fff");
$(this).find('.page-editing').css("color","#fff");
$(this).find('.page-editing').css("border-bottom","1px solid #fff");
})
});
$(document).ready(function(){
var title_page='';
var url_page='';
$('.all-page-selected-row').mousemove(function SelectRow(){
title_page = $(this).find('.title_page').text();
url_page = $(this).find('.url_page').text();
return title_page;
});
$('.page-editing').live("click", function(){
title = title_page;
url = url_page;
line1='<td width="30%"><input type="text" value="'+title_page+'"></td>';
line2='<td width="30%"><input type="text" value="'+url_page+'"></td>';
line3='<td width ="10%"></td><td width="30%"><a class="link-save-page">Сохранить</a></td>';
line4='<td><a class="link-cancel-page">Отменить</a></td>';
data = line1 + line2 + line3 + line4;
$(this).closest('tr').html(data);
//Вот тут начинается проблема. Если "$('.link-cancel-page')" не внутри
//функции $('.page-editing').click(function PageEditing(), то при нажатии
//ничего не происходит. Если внутри, то только 1 раз.
//Как избежать проблемы?
$('.link-cancel-page').one("click", function(){
back1 = '<td width="30%"><a class="title_page">'+title+'</a></td>';
back2 = '<td width="30%"><div class="url_page"><a class="invis" href="'+url+'">'+url+'</a></div></td>';
back3 = '<td width="30%"></td><td><a class="page-editing">Изменить</a></td><td> </td><td><a class="invis" href="del">Удалить</a></td>';
back = back1 + back2 + back3;
$(this).closest('tr').html(back);
});
});
});
</script>
|
|
31.05.2012, 12:03
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Имхо для Вашей структуры Правильнее было б навешивать обработчики onclick="Функция" непосредственно в элементе контента
Тогда б и скрипт короче и было б только описание функций и процессы изменения контента
А так - куча навешанных событий хитросплетенных с ченчем
Последний раз редактировалось Deff, 31.05.2012 в 12:07.
|
|
|
|