Скрипт выполняется только 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> |
Есть кто на форуме?
|
Цитата:
Сократите ваш код до минимального нерабочего, показывающего вашу проблему, и тогда вам возможно помогут. Разбираться в вашей простыне кода навряд ли кто-то станет. PS Если в теме прошло менее суток с момента последнего сообщения, то незачем ее АП-ать. Здесь вам не личная армия, которая по первому вашему зову должна кидаться решать ваши проблемы. Если хотите особого к себе отношения, и быстрого решения ваших проблем, можете подать заявку на платную консультацию в разделе "Работа" |
Я выложил весь код и указал в комментарии где проблема. Если тут нет людей способных понять в чем ошибка, зачем форум? Если разговор идет о платных услугах, тогда зачем мне консультация? Пожалуйста почту для тех задания и стоимость работ.
|
"PS Если в теме прошло менее суток с момента последнего сообщения, то незачем ее АП-ать. Здесь вам не личная армия, которая по первому вашему зову должна кидаться решать ваши проблемы." - Вы сразу настраиваете на соответствующее отношение своим тоном.
|
Цитата:
|
tuezov52,
вы правда думаете, что форум для того, чтобы выискивать ошибки в портянках чужих скриптов? Что-то вроде "чо та лень мне дебажить, пойду на форуме выложу, пусть другие подебажат". |
Вопрос не в том, что лень. Я уже пробовал кучу вариантов и смотрел похожие ошибки. Не нашел ответа и решил спросить у тех кто хорошо знает JS/JQ. Я не прошу поправить скрипт. Натолкните на мысль, что я делаю не так. Не факт, что ошибка вообще в этом месте. МБ я вообще ерунду пишу.
|
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> |
Имхо для Вашей структуры Правильнее было б навешивать обработчики onclick="Функция" непосредственно в элементе контента
Тогда б и скрипт короче и было б только описание функций и процессы изменения контента А так - куча навешанных событий хитросплетенных с ченчем |
Часовой пояс GMT +3, время: 00:48. |