В JQuery, text()
является метод. Методы для того, чтобы работать, требуют использования скобок, как показано ниже:
var s = $('#State option:selected').text(); // I added:()
Примечание: В JavaScript empty string
считается false
. Так что для опрятности, вы можете превратить ваш код в следующее:
$('#State').on('change', function() {
var s = $('#State option:selected').text();
if(s) { // If it's true
$('#showme').fadeIn();
}
else { // If it's false
$('#showme').fadeOut();
}
});
Отъезд обновленную версию вашей скрипкой here.
В качестве альтернативного, а другой ответ также правильно указал, вы можете использовать:
$('#showme').fadeOut(500, function() {
$(this).text(s).fadeIn(500);
});
Ввод s
внутри text()
может также проверить его состояние, потому что в соответствии с documentations
является:
Текст для установки в качестве содержимого каждого согласованного элемента. Когда Number или Boolean будет предоставлен, он будет преобразован в представление String.
В вашем случае, как я указывал выше, empty string
считается false
, поэтому он выполняет это требование.
Примечание: В этом случае, $('#showme')
будет исчезать в любом случае, но если значение true
(не пусто) будет исчезать обратно, я не уверен, что если вы на самом деле хотите, чтобы конкретный эффект, так что взять. посмотрите на this fiddle.
Первое работал. Не могу поверить, что я пропустил круглые скобки! – DevShadow
В кодировании это всегда мелочи :) –