У меня есть код, который использует метод jQuery .css() для изменения стиля DIV, но он не работает. Вот упрощенная версия моего кода, которая реплицирует проблему.jQuery .css() метод не работает
HTML:
<input type="radio" name="show" id="showleft" value="showleft">Left
<input type="radio" name="show" id="showright" value="showright">Right
<div id="cfwrapper">XXXXXXXXX</div>
CSS:
#cfwrapper {
bottom: 10px;
left: 30px;
position: fixed;
}
JavaScript:
$("input:radio[name=show]").click(function(event){
if (event.target.id == 'showleft') {
// remove property 'right:30px'
// add property 'left:30px'
} else if (event.target.id == 'showright') {
$('#cfwrapper').css('left',''); // remove property 'left:30px'
// add property 'right:30px'
}
});
Что происходит в приведенном выше коде, что линия $('#cfwrapper').css('left','');
не работает. Я бы ожидал, что он удалит свойство «left» из «cfwrapper» («XXXXXXXXX» будет перемещать 30px влево), а затем я бы использовал аналогичный оператор - $('#cfwrapper').css('right','30px');
- чтобы добавить свойство «right», чтобы «XXXXXXXXX» затем будет идти справа от страницы, но это не сработает.
Может ли кто-нибудь сказать мне, почему он не работает? Разве это не должно было работать?
JSFiddle: http://jsfiddle.net/fidnut/hLqngbsb/
http://stackoverflow.com/questions/9398870/remove-css-top-and-left-attributes-with-jquery –
использование 'auto', когда вы хотите игнорировать другое значение – charlietfl
Спасибо всем. Bungle ответила на вопрос, она была написана в справке jQuery! Я должен начать уделять больше внимания официальной справочной информации. Но я знал, что нужно использовать дополнительные классы вместо того, чтобы пытаться изменить селектор для достижения того же результата, но моя таблица стилей уже слишком сложна, и я хочу избежать создания большего количества классов. Вот почему мне очень нравится решение Cattla (также упоминаемое charlietfl). Таким образом, трюк заключается не в том, чтобы попытаться удалить то, что нельзя удалить, а вместо этого изменить его так, чтобы он не мешал (используя «авто»). Ницца! –