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... атрибут, а если таковой имеется.

Другие вопросы по тегам