AngularJS/UI/Bootstrap удалить аффикс из элемента?
Я использую AngularJS 1.2 и Bootstrap 2.3, хотя я думаю, что Angular не имеет значения, поскольку это всего лишь jQuery. Я хочу быть в состоянии повернуть affix
включение и выключение для определенного элемента. У меня есть несколько элементов на моей странице, используя affix
поэтому я не могу просто отключить все экземпляры плагина на странице. Кроме того, моя проблема не связана с размерами экрана, поэтому CSS не представляется возможным.
Для элемента, для которого я добавил аффикс к:
$(element).affix();
Вещи, которые я пытался прочитать о online / stackru, чтобы удалить аффикс, но безуспешно:
$(element).off('.affix');
$(element).removeData('affix').removeClass('affix affix-top affix-bottom');
Можно ли просто удалить аффиксный аспект этого элемента?
Любая помощь будет отличной!
2 ответа
При переключении между режимами добавьте / удалите свой собственный класс "sticky" (или как вы хотите его называть). Затем в CSS добавьте следующий стиль к вашему элементу:
&:not(.sticky) {
position: relative;
}
События аффикса начальной загрузки по-прежнему будут запускаться, но это переопределит позицию аффикса: фиксированный стиль.
В Bootstrap 2.3 вы используете аффикс так:
<div data-spy="affix" data-offset-top="200">...</div>
Я думаю, вам нужно удалить data-spy
атрибут из элемента
el = $(el);
var affixed = el.attr('data-spy');
if((typeof affixed != undefined) && (affixed !== false) && (affixed == 'affix'))
el.removeAttr( "data-spy" );
Что-то подобное, я думаю, будет работать. Конечно, вы также можете удалить data-offset...
атрибут, а если таковой имеется.