Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Правильное условие для конструкции if else? (https://javascript.ru/forum/jquery/63749-pravilnoe-uslovie-dlya-konstrukcii-if-else.html)

nina_ 26.06.2016 21:35

Правильное условие для конструкции if else?
 
Добрый день

Прошу помощи, чтобы осуществить следующее:
по клику на <td> должен открыться input, у которого value равно тому,
что находиться между тегами <td>. Повторный клик по этому <td> должен скрыть input и убрать value из него.

Изначально написала как-то так:
$(document).ready(function(){
    $('td').click(function(){
        var dateout = $(this).find('span').html();
        $(this).find('input').show().attr('value', dateout);
            $(this).click(function(){
                $(this).find('input').hide().removeAttr('value');
            });
    });
});

но повторить открыть/закрыть по клику не получилось,
нужно вероятно писать с помощью if else, но как правильно написать
условие?
$(document).ready(function(){
    var inp = $('input');
    if (inp.css('display')=='none'){ 
        $('td').click(function(){
            var dateout = $(this).find('span').html();
            $(this).find('input').show().attr('value', dateout);
        });
    }
    else{
        $('td').click(function(){
            $(this).find('input').hide().removeAttr('value');
        });
    }
});

рони 26.06.2016 21:54

nina_,
http://javascript.ru/forum/misc/4559...tml#post302151

http://javascript.ru/forum/dom-windo...tml#post292107

Alex_63 28.06.2016 13:04

nina_,
$(function(){
    $('td').on('click', function() {
        var inp = $(this).find('input');
        var dateout = $(this).find('span').html();
        if (inp.css('display') == 'none') {
            inp.show().val(dateout)
        } else {
            inp.hide()
        }
    });
});


Часовой пояс GMT +3, время: 08:30.