Отключение элемента в jquery 1.6

С выпуском jQuery 1.6 рекомендация SO заключалась в том, чтобы в целом начать использовать prop() там, где вы привыкли используйте attr().

Что происходит, когда я хочу отключить элемент?

$('.control').prop('disabled', 'disabled');
$('.control').prop('disabled', true);

Ни один из них, похоже, не отключает управление. Является ли отключение элемента исключением из правил?

ОБНОВЛЕНИЕ И оказалось, что причина, по которой элемент не был отключен, была из-за строки, которая была у меня перед строками выше:

$('.control').removeProp('disabled');

При включении элементов управления я привык использовать .removeAttr(), поэтому решил, что .removeProp будет достаточно. Вместо этого используйте следующее, чтобы включить элементы управления:

$('.control').prop('disabled', false);

person ajbeaven    schedule 05.05.2011    source источник
comment
Какой элемент вы пытаетесь отключить?   -  person Matt Ball    schedule 05.05.2011
comment
Что касается вашего обновления, у меня оно тоже работает: jsfiddle.net/fkling/K95Fr/1   -  person Felix Kling    schedule 05.05.2011
comment
Можете ли вы ответить на свой вопрос так, чтобы это помогло другим? Если вы это сделаете, вы можете выбрать свой ответ как правильный. Это может показаться странным, но это предпочтительный способ решения подобных ситуаций.   -  person    schedule 06.05.2011
comment
Мне нужно подождать несколько часов, прежде чем я смогу принять свой собственный ответ.   -  person ajbeaven    schedule 07.05.2011


Ответы (3)


$('.control').prop('disabled', true);

мне подходит.

В качестве альтернативы используйте

$('.control').attr('disabled', 'disabled');

Обновление:

Но даже $('.control').prop('disabled', 'disabled'); или $('.control').attr('disabled', true); тоже отключают элемент. Так что, если это не работает для вас, вопрос действительно в том, какой элемент вы пытаетесь отключить. Можно ли его вообще отключить?

person Felix Kling    schedule 05.05.2011
comment
Буквально на 10 секунд быстрее для меня. - person Matt Ball; 05.05.2011

Убедитесь, что у вас нет .removeProp('disabled') на элементе, который вы пытаетесь отключить.

person ajbeaven    schedule 05.05.2011

Используйте 1_.

http://jsfiddle.net/mattball/BaLHf/

person Matt Ball    schedule 05.05.2011