2

Я использую AngularJS 1.2 и Bootstrap 2.3, хотя я думаю, что это не имеет отношения к Angular, потому что это просто jQuery. Я хочу, чтобы включить и выключить affix для определенного элемента. У меня есть несколько элементов на моей странице, используя affix, поэтому я не могу просто отключить все экземпляры плагина на странице. Кроме того, моя проблема не связана с размерами экрана, поэтому css не представляется возможным.AngularJS/UI/Bootstrap удалить аффикс из элемента?

Для элемента, для которого я добавил аффикса к:

$(element).affix(); 

Вещи, которые я попробовал, что я читал о онлайн/StackOverflow, чтобы удалить аффикса, но не увенчались успехом:

$(element).off('.affix'); 

$(element).removeData('affix').removeClass('affix affix-top affix-bottom'); 

Можно ли просто удалить аффикс-аспект этого элемента?

Любая помощь будет замечательной!

ответ

0

В 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..., если он есть.

+1

это не работает, поскольку я не добавляю аффикс через атрибут на div! Мне просто нужно включить и выключить аффикс через javascript. Спасибо хоть :) – changus

0

Добавить/удалить свой собственный «липкий» класс (или все, что вы хотите назвать) при переключении между режимами. Тогда, в CSS, добавьте следующий стиль вашего элемента:

&:not(.sticky) { position: relative; }

Бутстраповское наклеить события все еще продолжают стрелять, но это будет перекрывать позицию аффикс: фиксированный стиль.

Смежные вопросы