zuerst ungebunden klicken und dann binden (jquery)

Lesezeit: 2 Minuten

1. Ich habe ein onclick-Ereignis am,

$('#locations').click(function(){
$('#train').unbind('click'); 
//do some stuff
}

2.Sobald auf die Schließen-Schaltfläche geklickt wird

$('.close').click(function(){
//do some stuff
}

3.Dann noch einmal, wenn ich auf #train klicke

$('#train').bind('click', function() {
alert('train is clicked');
//do some stuff
}

Jetzt ist das Problem, dass #train nicht ausgelöst wird. Soll das Ereignis erneut an die .close-Funktion gebunden werden?

Bitte vorschlagen. Danke im Voraus.

  • Möchten Sie das #train-Element neu binden, nachdem auf die Schließen-Schaltfläche geklickt wurde?

    – Ankit Jaiswal

    22. Juni 2013 um 11:40 Uhr

  • welche jQuery-Version verwendest du? verwenden .on und .off Anstatt von .bind.

    – Omar

    22. Juni 2013 um 11:40 Uhr

  • Ankit ja, das möchte ich tun. Wenn also auf die Schaltfläche/ID zum Schließen geklickt wird, kann ich erneut auf #train klicken.

    – Prithviraj Mitra

    22. Juni 2013 um 11:43 Uhr

  • Omar Ich verwende jquery-1.7.1

    – Prithviraj Mitra

    22. Juni 2013 um 11:44 Uhr

Benutzer-Avatar
krishwader

Wenn Sie sich Ihre Frage ansehen, scheinen Sie das nicht zurück zu binden click Nach Ihnen unbind es, damit es nicht feuert. (Vorausgesetzt, Sie haben die Reihenfolge Ihrer Funktionalität richtig eingehalten). Du musst es so machen:

//Set a function with the action you need to do after you click the train
function  trainClick() {
  alert('train is clicked');
  //do some stuff
}

Wenn Sie unverbindlich sind, rufen Sie an unbind mit dem Funktionsnamen:

$('#locations').click(function(){
 $('#train').unbind('click',trainClick);
//do some stuff
}

Dann, um den Klick zu binden (when #close angeklickt wird), würden Sie verwenden:

$('.close').click(function(){
  $('#train').bind('click',trainClick);
  //do some stuff
}

HINWEIS :

Ein besserer Weg wäre die Verwendung on und off, wenn Sie eine Version größer als jQuery v1.7 verwenden, weil, nun ja … dann wird es nicht funktionieren. Ersetzen Sie im obigen Code einfach bind mit on und unbind mit off.

$('#train').on('click',trainClick);
$('#train').off('click',trainClick);

Hoffe das hilft!

  • Danke PC. Bitte gebt mir irgendwann Zeit, damit zu testen … wir werden uns bald bei euch melden.

    – Prithviraj Mitra

    22. Juni 2013 um 11:45 Uhr

  • Brilliant!..Antwort angenommen…Vielen Dank für Ihre Hilfe.

    – Prithviraj Mitra

    22. Juni 2013 um 12:16 Uhr

Benutzer-Avatar
Sean

BINDENDE UND UNBINDENDE HANDLER

Der Schlüssel ist Umfang.

Sie müssen die deklarieren und definieren function (trainClick(){stuff it does}) außerhalb des Ereignishandlers, damit die Funktionen der anderen Schaltflächen es sehen können.

Unten ist ein Beispiel.

function trainClick()
{
    alert("train is clicked"); //Notice this function is declared outside event handlers below
}
$('#button1').on("click", trainClick); //this calls the above function

$("#button2").on("click",function(){
    $("#button1").off("click",trainClick); //unbinds button1 from trainClick() function (event handler)
});//End Button 2 click

$("#button3").on("click",function(){
    $("#button1").on("click",trainClick); //binds button1 to trainClick() function (event handler)
});//End Button 2 click

1137250cookie-checkzuerst ungebunden klicken und dann binden (jquery)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy