2017-02-15 3 views
0

Ich habe eine Webseite, auf der ich eine Aktion ausführen möchte, wenn der Benutzer auf einen Link klickt, ODER wenn die Seite lädt, wenn die URL einen bestimmten Hash enthält.jQuery-Trigger-Klick (gegen menschlichen Klick) funktioniert nur teilweise

Hier ist der Code, der ausgelöst wird, wenn ein Mensch klickt auf einen der Links:

jQuery(".mygroup a").click(function(e) { 
// all the stuff that happens, including reference to and manipulation of extshapeAr 
}); 

Wenn der Benutzer direkt auf einen der Links klickt, alle abhängigen Aktionen (Schriftgröße verändern und Farbe und Ändern von Farben auf Shapes auf einem separat geladenen Objekt auf dem Rest der Seite) funktionieren wie erwartet.

Aber wenn ich überprüfe, den Hash und wenn es vorhanden Gebrauch:

jQuery(document).ready(function(){ 
    var hash = window.location.hash; 
    var hashclean = hash.substr(1); 
    if (hash) { 
    jQuery('.mygroup a.'+ hashclean).trigger('click'); 
    } 
}); 

Der Klick ausgelöst wird und ein Teil des Codes ausgeführt wird, aber dann stoppt mit einem Referenzfehler mir Objekt meines separat geladen zu sagen ist nicht definiert.

Uncaught ReferenceError: extshapeAr is not defined

sollte nicht der Auslöser auf die gleiche Weise funktionieren, wie ein menschlicher Klick würde? Was vermisse ich?

+0

Bitte fügen Sie alle Ihre Code mit Fehlerfunktion. –

+0

Ich verstehe, aber es gibt eine Menge Code und ich wollte die Frage so einfach wie möglich halten. Vielleicht muss ich die Frage neu formulieren, ich werde es mir nochmal ansehen – Stephen

Antwort

0

Ok, habe ich herausgefunden, was das verursacht wurde. Der Code, der extshapeAr erstellt hat, dauerte zu lange, auch wenn ich dachte, dass ich davor mit meiner dokumentfertigen Deklaration geschützt war, anscheinend nicht. Ich musste meinen Hash-Check in den separat geladenen Code platzieren, direkt nachdem das Objekt erstellt wurde. Jetzt funktioniert alles wie erwartet.

0

Sie legen Handler jQuery(".mygroup a") klicken und irgendwie ausgelöst Sie Ereignis auf jQuery('.mygroup a.'+ hashclean) klicken, die nicht mit dem ersten Kontext abgestimmt ist. Immer es Wechsel mit dem jQuery(".mygroup a")

Cant reproduzieren den Fehler entsprechen, können Sie es zu replizieren, und fügen Sie ihn hier in

Verwandte Themen