Frage

habe ich geschrieben, um eine Plugin Begriffe hervorzuheben verwendet ein finden . Die Quelle ist auch .

Mein Problem ist, wenn man sich den Inline erste Link aussehen JavaScript, ich habe eine benutzerdefinierte Funktion textPlacement gemacht das Einsetzen der Anzeigeleiste (es sieht ein bisschen wie Stack-Überlauf des).

zu handhaben

Wie Sie sehen können, habe ich einen Event-Handler auf die Schaltfläche eingefügt wird. Ich habe die Entfernung des Strichcode, aber ich würde auch die Hervorhebung der Begriffe entfernen möge. Das Plugin verfügt über eine Methode für diese genannt toggleTermHighlighting() tun.

Wie kann ich nenne das Verfahren aus dem Innern der anonymen Funktion auf der Beispielseite? Würde ich brauche es this.toggleTermHighlighting = function() {} zu machen. Ich habe in einer Instanz von dieser auf das erste Argument versuchte vorbei, aber konnte es nicht arbeiten.

Sorry, ich scheine immer eine harte Zeit mit Rahmen in JavaScript zu haben.

Wer weiß, was ich tun könnte, die Lage sein, diese Methode für den Zugriff aus dem Innern der anonymen Funktion von der Beispielseite?

War es hilfreich?

Lösung

Ich denke, wenn man die Art und Weise die Funktion neu strukturiert wurde im Plugin definiert, würde es sich ein bisschen einfacher.

Ändern Sie Zeile 128 aus:

var toggleTermHighlighting = function() {

zu:

this.toggleTermHighlighting = function() {

Dann können Sie etwas tun, die Funktion aus einem ganz anderen Umfang zuzugreifen:

var myPlug = new $.fn.searchTermsHighlight();
myPlug.toggleTermHighlighting();

Dies wäre eine Antwort auf Ihre Frage, aber ich denke, ein anderer Ansatz besser geeignet sein könnte. Wenn Sie auf einer Menge von dem jQuery UI-Code aussehen, können Sie eine Zeichenfolge in das Plugin übergeben, und es wird eine Funktion für Sie ausführen. So könnte man eigentlich nur so etwas wie:

$('body').searchTermsHighlight('toggle');

und dann prüfen, nur für ihn an der Spitze Ihrer Funktion oder in einer init () Typen Funktion

if (options === 'toggle'){ toggleTermHighlighting(); return this; }

Andere Tipps

Du gehst zu haben „toggleTermHighlighting“ eine exponierte jQuery-Funktion in seinem eigenen Recht zu machen, oder aber seine Funktionalität als Option auf dem vorhandene Verfahren aussetzen. Nun, wenn Sie etwas ein wenig seltsam tun möchten, können Sie die Funktion (und alles, was Sie mögen) stopfen in ein Datenelement auf dem betroffenen Objekt (siehe jQuery „data“ Funktion).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top