Простой способ переключения значения кнопки

0

Как и в названии, я хотел бы, чтобы пользователь нажал кнопку и получил новое значение. В этом случае это кнопка для переключения меню из скрытого в видимое и наоборот. Вот мой код.

Я хочу, чтобы он сказал "show menu" и "hide menu",

Прямо сейчас я нажимаю, открывается меню и устанавливается новое значение, а меню может закрываться, но значение не возвращается.

JQuery:

$(function () {   
$("#UIcontainer").hide();

$("#button").click(function() {
$("#UIcontainer").toggle( function() {
    $("#button").val('hide menu');
});
  });
}); 

4 ответа

2
$(function () {   
    $("#UIcontainer").hide();

    $("#button").on('click', function() {
        $("#UIcontainer").toggle();
        this.value = this.value == 'hide menu' ? 'show menu' : 'hide menu';
    });
}); 

FIDDLE

  • 0
    Можете ли вы объяснить, что происходит в самой последней строке? Кроме того, я написал небольшое заявление «если еще», которое сработало, но я вижу, как твоя более надежна. Спасибо!
  • 0
    Последняя строка является троичным оператором, и точно так же, как оператор if / else, она устанавливает значение в зависимости от того, какое значение в данный момент есть, с простым javascript, без jQuery!
0

это будет так. установите атрибут вашей кнопки. например, переключить.

<input type="button" toggle="show">


$(function () {   

    $("#button").click(function() {
        if ($this.attr("toggle")=="show"){
            $("#UIcontainer").show();
            $this.attr("toggle")="hide"
        }
        else{
            $("#UIcontainer").hide();
            $this.attr("toggle")="show"
        }
    });

});
0

Протестировано и работает как шарм

<input type="button" id="button" value="hide menu" />
<div id='UIcontainer'>fladfl</div>

<script type="text/javascript">
$(function () {   
    $("#button").click(function() {
        var val = $(this).val();
        if(val=="hide menu") {
            $("#button").val('show menu');
        } else {
            $("#button").val('hide menu');  
        }
        $("#UIcontainer").toggle();
    });
}); 
</script>
0

Пытаться:

$(function () {   
$("#UIcontainer").hide();

$("#button").click(function() {
$("#UIcontainer").toggle();
$(this).val($(this).val() == "hide menu" ? "show menu" : "hide menu");
  });
}); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню