2016-12-15 7 views
0

Ich bin mit Bootstrap popoversMit .not() mit Bootstrap popover

$('[data-toggle=popover]').popover(); 

Ich brauche diesen Code zu ändern, starten popover zu verhindern, wenn das Element bestimmtes Datenattribut hat.

$('[data-toggle=popover]').not('[data-nopopover=1]').popover(); 

Aus irgendeinem Grund wird das Popover immer noch ausgelöst, obwohl das Datenattribut vorhanden ist.

HTML

<span data-container="body" data-toggle="popover" data-placement="right" data-html="true" data-content="popover content" aria-hidden="true" data-original-title="" title=""></span> 

Was bin ich?

+0

Was passiert, wenn Sie gerade tun '.not ('[data-nopopover]')'? Ohne "= 1". –

+0

Es tut es immer noch ... Ich frage mich, ob es ist, weil ich Datenattribut dynamisch hinzufüge. Vielleicht muss ich .on() irgendwie integrieren. – santa

+0

Können Sie den von Ihnen verwendeten HTML-Code posten? –

Antwort

1

Wenn Sie das Popover an alle Elemente mit data-toggle=popover gebunden haben, müssen Sie das Popover für die Elemente zerstören, die kein Popover anzeigen sollen. Der Aufruf von $('[data-toggle=popover]').not('[data-nopopover=1]').popover(); wird nur versuchen, das Popover für die Elemente zu initialisieren, die das data-nopopover-Attribut nicht erneut haben. Für die Elemente mit data-nopopover wird weiterhin das Popover angehängt. Sie sollten anrufen $('[data-nopopover=1]').popover('destroy');

Wenn Sie es nur einmal an die Elemente binden, hängt es davon ab, wie Sie data-nopopover festlegen. Es muss wie folgt eingestellt werden: $('your-selector').attr('data-nopopover', "1"); $('[data-toggle=popover]').not('[data-nopopover=1]').popover();

ich eine Fiddle geschaffen, wo man herumspielen können: https://jsfiddle.net/vo1npqdx/72/