У меня есть эти переключатели функции, отключенный атрибут формирует поле ввода:
$('.someElement').click(function(){
if (someCondition) {
console.log($target.prev('input')) // gives out the right object
$target.toggleClass('open').prev('input').attr('disabled', 'disabled');
}else{
$target.toggleClass('open').prev('input').removeAttr('disabled'); //this works
}
})
removeAttr
хорошо работает, но когда я должен добавить отключенное снова, это просто ничего не делает. Мой console.log инициирован (и предоставление меня назад правильное поле ввода), таким образом, я уверен, что мой, если оператор работает. Но когда я осматриваю DOM с поджигателем в Firefox, отключенный атрибут не появляется.
кто-то может помочь мне?
PS: не фокусируйтесь на функции или, если сам оператор, хорошо работает его просто, что attr, который не работает на отключенный...
править: входной тип = "скрытый" действительно ли возможно, что отключил, не работает над скрытыми полями?
Спасибо всем за ваш вклад! Я обнаружил проблему:
ЕГО ОШИБКА FIREBUG !!!
Мой код работает. Я попросил разработчика PHP изменить скрытые типы ввода на текст типа ввода. Отключенная функция работает. Но консоль firebug не обновляет этот статус!
вы можете проверить эту ошибку firebug самостоятельно здесь http://jsbin.com/uneti3/3# . Спасибо aSeptik за пример страницы.
обновление: 2 июня 2012 г .: Firebug в FF11 все еще имеет эту ошибку.
UPDATED
DEMO: http://jsbin.com/uneti3/3
ваш код неправильный, он должен быть примерно таким:
$(bla).click(function() {
var disable = $target.toggleClass('open').hasClass('open');
$target.prev().prop("disabled", disable);
});
вы используете функцию toggleClass неправильно
Попробуйте этот обновленный код:
$(bla).click(function(){
if (something) {
console.log($target.prev("input")) // gives out the right object
$target.toggleClass("open").prev("input").attr("disabled", "true");
}else{
$target.toggleClass("open").prev("input").removeAttr("disabled"); //this works
}
})
Try
$(bla).click(function(){
if (something) {
console.log("A:"+$target.prev("input")) // gives out the right object
$target.toggleClass("open").prev("input").attr("disabled", "disabled");
}else{
console.log("A:"+$target.prev("input")) // any thing from there for a single click?
$target.toggleClass("open").prev("input").removeAttr("disabled"); //this works
}
});