Frage

Ich verfolge diesen Thread aktivieren / deaktivieren den Klick auf eine Schaltfläche, Der beste Weg, einen Event-Handler in jQuery? zu entfernen

seine Idee ist, dass Sie auch die Live () Methode können Sie aktivieren / deaktivieren Ereignisse. Was ist mit diesem Code passieren wird, ist, dass, wenn Sie auf einem einem Tag-Element klicken, zum Beispiel, .load-Artikel, wird die Klasse in den dieses Element deaktiviert. Dadurch wird es so, dass die Wähler nicht mehr das Element entspricht, und das Ereignis wird nicht ausgelöst werden, bis die ‚behindert‘ Klasse entfernt macht die .live () Wähler wieder gültig.

Im Folgenden finden Sie, was ich kam mit und es nicht deaktiviert den Klick auf die erste Schaltfläche,

$('.load-item:not(.disabled)').live('click',function(){


/* add a .current class to the target item */
$(this).parentsUntil('.column-global').addClass('current');

/* add .disabled class to each a tag in the .current element-div */
$('.current a').each(function(index) {
    $(this).addClass('disabled');
});

....

});

und ich habe eine andere Funktion, um die behinderten-Klasse zu entfernen, wenn Sie auf eine andere Schaltfläche klicken,

$('.button-return').click(function(){

    ...

    /* remove all the .disabled class if any exists */
    $('.current a').each(function(index) {
        $(this).removeClass('disabled');
    });

    ...

    /* remove all the .current class if any exists */
    $('.item-global').removeClass('current');



    return false;

});

Ich habe überprüft, dass es die Behinderten-Klasse nicht entfernen, aber die erste Taste ist noch nicht wieder auf den ursprünglichen Zustand klickbare.

habe ich verpasst, etwas aus - oder die Live () lebt eigentlich nur einmal nur? keine besseren Lösungen, wenn Live () nicht derjenige ist, soll ich arbeiten ??

Dank.

War es hilfreich?

Lösung

Ihre Return-Taste Bedürfnisse als auch eine Live-Veranstaltung sein

$('.button-return:not(disabled)').live("click",function(){...});

Auch bei der Verwendung von addClass () und removeClass () Sie brauchen nicht jeden auf dem Selektor zu verwenden. nennen Sie es einfach.

$('.current a').each(function(index) {
    $(this).removeClass('disabled');
});

ist das gleiche wie diese

$('.current a').removeClass('disabled');

Edited

Hinweis, wenn Sie das Live-Event auf die Return-Taste hinzufügen, die Sie benötigen, um sicherzustellen, dass es nicht deaktiviert ist.

Es funktioniert hier perfekt ist, eine einfache Demo http://www.jsfiddle.net/Qax3n/

Andere Tipps

Es muss etwas mit Ihrem HTML-Layout oder anderen Javascript zu tun. Die folgenden Werke: http://jsfiddle.net/EEJEh/

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