2016-06-01 17 views
0

Ich frage mich nur, was ich tun muss, um die clickAssistanceToggle Funktion zu meinem jQuery Click Event zu übergeben, habe ich einige der Antworten auf hier und habe keine einfache Lösung zu finden Dies.Pass-Funktion zum Klicken auf Ereignis jQuery

Bisher habe ich diesen Code:

function clickAssistanceToggle() { 
    $('.car-hub-header-help, #assistance-overlay, .assistance-close-btn').click(function(){ 
     $('#new-car-hub, #new-car-offer').toggleClass('assistance-active'); 
     $('#pulman-assistance').toggleClass('pulman-assistance-active').css("top", fixedPositionCalculator); 
     $('#assistance-overlay').toggleClass('assistance-overlay-active'); 
     $('#new-car').toggleClass('assistance-active-body'); 
     $('#new-car-offer-cta').toggleClass('assistance-active-cta'); 
    }); 
    }; 
    $('.new-car-general-enquiry-btn').click(function(){ 
    clickAssistanceToggle(); 
    }); 

Wie Sie die Funktion wird nicht wie diese laufen sehen kann, weil es nicht als Parameter übergeben wurde, habe ich versucht, das Bestehen der Funktion wie folgt:

$('.new-car-general-enquiry-btn').click(function(clickAssistanceToggle){ 
    clickAssistanceToggle(); 
    }); 

Das scheint jedoch nicht zu funktionieren, irgendeine Idee, wie ich diese Funktion an das Klickereignis übergeben kann? Dank

+0

Offenbar weist Ihre clickAssistanceToggle-Funktion selbst einem Bündel anderer Elemente einen Click-Handler zu. Kannst du den beabsichtigten Zweck erklären? – lud1977

+1

Sind Sie sicher, dass Ihr Code nicht funktioniert? Der Code im ersten Block hat nichts eklatant falsches, das einzige Problem ist, dass es keine unmittelbare sichtbare Wirkung hat. Wenn der Benutzer auf ".new-car-general-inquiry-btn" klickt, wird die angefügte Funktion aufgerufen, und anderen Elementen wird ein weiterer Click-Handler hinzugefügt. Die toggleClass-Methoden werden nur ausgeführt, wenn der Benutzer auf eines der folgenden Elemente klickt: .car-hub-header-help, # assistance-overlay, .assistance-close-btn'. Das heißt, der zweite Blockcode ist natürlich falsch. – lud1977

+0

Danke ganz richtig, ich glaube, ich bin ein wenig verwirrt und dachte, es sei, weil die Funktion nicht angerufen wurde. Ich erkannte nicht, dass ich eine Funktion aufruft, die ein Klickereignis innerhalb einer Klickfunktion enthält. –

Antwort

3

Sie wie folgt aufrufen können,

$('.new-car-general-enquiry-btn').click(clickAssistanceToggle); 

Oder

$('.new-car-general-enquiry-btn').click(function(){ 
    clickAssistanceToggle(); 
    }); 

Auch gibt es eine Chance, dass .new-Auto-general-Anfrage-btn Element an der nicht wiedergegeben wird Zeitpunkt der Bindung der Veranstaltung. Wenn dies der Fall ist, müssen Sie den Code in das dom ready-Ereignis einfügen.

$(document).ready(function() { 
    $('.new-car-general-enquiry-btn').click(function() { 
    clickAssistanceToggle(); 
    }); 
}); 
0

Statt

$('.new-car-general-enquiry-btn').click(function(clickAssistanceToggle){ 
    clickAssistanceToggle(); 
    }); 

Sie benötigen

$('.new-car-general-enquiry-btn').click(clickAssistanceToggle); 

Grundsätzlich Sie die Funktion übergeben müssen verwenden ausgeführt werden, wenn ein Klick auf ein .new-car-general-enquiry-btn Element durchgeführt wird.

Verwandte Themen