Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Jquery + toohle + This
 
 автор: Qixing_vl   (21.01.2014 в 08:00)   письмо автору
 
 


<li class="thumbnail">
    <a href="<?php echo $data->file;?>">
        
    </a>
    <p>
        <a href="" class="smoke_confirm" title="Remove"><i class="glyphicon glyphicon-trash"></i></a>
        <a class="NumberPageEdit" href="#" onclick="return false"  title="Edit"><i class="glyphicon glyphicon-pencil"></i></a>

        <span class="NumberPageShow"><?php echo $data->page_number?></span>
        <span class="NumberPageForm">
            <input class="form-control" id="MagazineNumber_<?php echo $data->id?>" type="text" placeholder="Номер страницы" value="<?php echo $data->page_number?>">
            <a class="NumberPageOk" href="#" onclick="return false"><i class="glyphicon glyphicon-ok"></i></a>
        </span>
    </p>
</li>


JS

$(document).ready(function () {
  
    $('.NumberPageForm').toggle();

    $('.NumberPageEdit').click(function()
    {
        $(this).next('.NumberPageForm').show();

    });

});


Требуется:
При загрузке скрываю формы внутри "NumberPageForm"
При клике на NumberPageEdit" нужно открывать. Но только в текущем элементе.

  Ответить  
 
 автор: confirm   (21.01.2014 в 08:26)   письмо автору
 
   для: Qixing_vl   (21.01.2014 в 08:00)
 

Обязательно такой кошмар
<a class="NumberPageEdit" href="#" onclick="return false" title="Edit"><i class="glyphicon glyphicon-pencil"></i></a>
так как по самому элементу LI без тега ссылки ну никак не щелкнуть?

И, задайте родительским элементам формы через имя класса, которое добавляется тегу body при загрузке документа, стиль display: none, а $('.NumberPageForm').toggle(); выбросить.

Первый в наборе, это first() или :first.

  Ответить  
 
 автор: Qixing_vl   (21.01.2014 в 08:30)   письмо автору
 
   для: confirm   (21.01.2014 в 08:26)
 


<li class="thumbnail">
    <a href="<?php echo $data->file;?>">
        
    </a>
    <p>
        <a href="", array("id" => $data->id)) ?>"
           class="smoke_confirm" title="Remove"><i class="glyphicon glyphicon-trash"></i></a>
        <a class="NumberPageEdit" href="#" onclick="return false" title="Edit"><i
                class="glyphicon glyphicon-pencil"></i></a>
        <a class="NumberPageOk" href="#" onclick="return false"><i
                class="glyphicon glyphicon-ok"></i></a>

        <span class="NumberPageShow"><?php echo $data->page_number?></span>
        <span class="NumberPageForm" style="width:120px">

                <input class="input-sm form-control"  id="MagazineNumber_<?php echo $data->id?>" type="text"
                       placeholder="Номер страницы" value="<?php echo $data->page_number?>">


        </span>
    </p>
</li>


JS

$(document).ready(function () {
    
    $('.NumberPageForm').toggle();
    $('.NumberPageOk').toggle();


    $('.NumberPageEdit').click(function()
    {
        $(this).next('.NumberPageOk').toggle();
        $(this).next().next('.NumberPageShow').toggle();
        $(this).next().next().next('.NumberPageForm').toggle();

    });

});

Я тут немного нашел ошибки и исправил.

Как упростить и избавиться от next() на стороне JS ?

Спецификация верстки на bootstrap в gebo admin такая.

P.S. Тут название картинки будет с помощью Ajax редактироваться.

  Ответить  
 
 автор: confirm   (21.01.2014 в 09:05)   письмо автору
 
   для: Qixing_vl   (21.01.2014 в 08:30)
 

Не надо только кивать на bootstrap, это всего лишь иснтрумент, и если в нем прилично мусора откровенного, то это еще не означает думать этим же мусором. Кто вас заставляет писать вот эту чушь?

$('.NumberPageForm').toggle();
$('.NumberPageOk').toggle();

Неужели не понятно, что состояние по умолчанию нужно задавать, а не принудительно с помощью сценария устанавливать, если первое, это практически в чем "родились" элементы ваши?

А за href="#" onclick="return false" нужно просто отрывать руки.

Как упростить и избавиться от next() на стороне JS ?

А что метод next() универсален и РНР тоже им не брезгует? Нет стороны JS, есть клиент и сервер, а чтобы не использовать next, так обращайтесь сразу к нужному, зачем вам вообще next()?
Или у вас в один единственный элементе LI все это впихнуто?

  Ответить  
 
 автор: Qixing_vl   (21.01.2014 в 09:18)   письмо автору
 
   для: confirm   (21.01.2014 в 09:05)
 

Присвоил Li NumberPage

$('.NumberPage').click(function()
    {
        $(this).find('.NumberPageShow').hide();
        $(this).find('.NumberPageOk').show();       
        $(this).find('.NumberPageForm').show();

    });



Как быть с onclick="return false" , чтобы a ничего не возвращал ?

  Ответить  
 
 автор: Valick   (21.01.2014 в 09:24)   письмо автору
 
   для: Qixing_vl   (21.01.2014 в 09:18)
 

Как быть с onclick="return false" , чтобы a ничего не возвращал ?
я конечно не силен в JS, но может просто убрать???

  Ответить  
 
 автор: Qixing_vl   (21.01.2014 в 09:34)   письмо автору
 
   для: Valick   (21.01.2014 в 09:24)
 

Да. Спасибо за наводки =) Я в JS не силен.

  Ответить  
 
 автор: confirm   (21.01.2014 в 09:44)   письмо автору
 
   для: Qixing_vl   (21.01.2014 в 09:18)
 

Все элементы на странице имеют те или иные события, и по элементу LI можно с таким же успехом щелкнуть как и по тегу А. Спрашивается, зачем обрамлять тег LI тегом А? Ради чего, вы можете на это ответить?

return false в теге А прописывают не для того, чтобы не возвращало, а для того, чтобы предотвратить переход по щелчку, ибо элемент А для того и создан, чтобы совершать переход.

  Ответить  
 
 автор: Valick   (21.01.2014 в 09:57)   письмо автору
 
   для: confirm   (21.01.2014 в 09:44)
 

для того, чтобы предотвратить переход по щелчку
это если на онклик повесить функцию и при определенном алгоритме вернуть ложь, то перехода тоже не будет?
___
а убрать я имел ввиду вместе с тегом ссылки, там же один хрен href="#"

  Ответить  
 
 автор: confirm   (21.01.2014 в 10:00)   письмо автору
 
   для: Valick   (21.01.2014 в 09:57)
 

Создайте два тега А, у одного будет атрибут href у другого нет

Посмотрите на них, какая между ними будет разница, пощелкайте, подумайте есть ли польза...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования