2

我正在使用 AngularJS 1.2 和 Bootstrap 2.3,尽管我认为 Angular 的参与无关紧要,因为这只是 jQuery。我希望能够打开affix和关闭特定元素。我的页面上有多个元素,affix因此我不能只禁用页面上插件的所有实例。另外,我的问题与屏幕尺寸无关,因此不可能使用 css。

对于我添加了词缀的元素:

$(element).affix();

我尝试过阅读有关在线/stackoverflow 以删除词缀的内容,但均未成功:

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

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

是否可以仅删除此元素的词缀方面?

任何帮助都会很棒!

4

2 回答 2

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...如果有属性,您也可以删除该属性。

于 2013-11-18T20:17:24.627 回答
0

在模式之间切换时添加/删除您自己的“粘性”类(或任何您想调用的类)。然后,在 css 中,将以下样式添加到您的元素:

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

引导词缀事件仍将继续触发,但这将覆盖词缀 position:fixed 样式。

于 2016-01-26T18:18:01.797 回答