У меня есть карусель с 3-мя панелями. Когда страница сначала загружена, я хочу, чтобы левая кнопка была отключена, чтобы пользователь мог переходить назад через панели.
У меня есть рабочая функция disableButton:
function disableLButton()
{
$(".carouselBtnLeft").attr("disabled",true);
}
это отлично работает, когда я вызываю это, когда возвращаюсь на 1-ое окно.
Я не хочу, чтобы он также был отключен, когда программа сначала запускается, я попробовал просто вызвать функцию с помощью firstRun bool, но она не работает:
var firstRun = true;
if(firstRun == true)
{
disableLButton();
firstRun=false;
}
Я уверен, что есть отвратительно простое решение...
РЕШИТЬ:
Я добавил функцию нагрузки в тело:
<body onload="load()">
Затем в функции загрузки:
function load()
{
disableLButton(true);
}
вам нужно установить отключенное свойство с помощью prop() вместо attr()
function disableLButton()
{
$(".carouselBtnLeft").prop("disabled",true);
}
см. здесь API method prop()
Разница между атрибутами и свойствами может быть важной в конкретных ситуациях. Перед jQuery 1.6 метод.attr() иногда учитывал значения свойств при извлечении некоторых атрибутов, что может привести к непоследовательному поведению. Начиная с jQuery 1.6, метод.prop() предоставляет способ явного извлечения значений свойств, в то время как.attr() извлекает атрибуты.
Атрибут disabled считается атрибутом Boolean:
http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.3.4.2
и не забывайте, что при отключении атрибута disabled используйте это:
$(".carouselBtnLeft").removeProp("disabled");
вы не установите его в false, поскольку даже наличие отключенного атрибута, даже если оно не имеет значения, будет считаться истинным.. поэтому используйте removeProp(), чтобы удалить отключенный атрибут
if (firstRun) { ... }
, вам не нужно== true
.