Во-первых, вам не нужно назначать два обработчика щелчков для одного и того же поля. Оба будут запускаться при каждом щелчке, поэтому первый из них будет широко установлен, а второй (после того, как вы исправите условие if) вернет его в значение small.
Во-вторых, x.val()
не имеет смысла, когда x
уже является (строковым) значением, поэтому вы хотите сравнить x === "Normal"
. За исключением того, что переменная x
используется только в том месте, где она вам вообще не нужна, вы можете просто сравнить .val() === "Normal"
.
Так попробуйте это:
$(document).ready(function(){
$("#widen_btn").click(function(){
var $this = $(this);
if ($this.val() === "Normal") {
$this.val("Narrow");
$("#side-panel").css("width","250px");
} else {
$this.val("Normal");
$("#side-panel").css("width", "500px");
);
});
});
Обратите внимание, что в обработчике кликов this
относится к элементу, по которому щелкнули, поэтому я использовал $(this)
вместо $("#widen_btn")
и кэшировал ссылку на него в переменной $this
. Если рассматриваемая кнопка - <input type="button">
, вы можете просто сказать this.value
напрямую.