Frage

Ich erhalte nicht, warum dies bestätigen () -Aufruf Brände, obwohl ich „Nein“ getroffen. Können Sie mir sagen, was ich falsch mache?

$('.deleteButton').livequery('click',function(){
        if(confirm('Are you sure?')){
            return true;
        }else
        {
            return false;
        }
        return false;
    });

Der HTML-Markup:

<a class="smallbutton deleteButton" href="users.php?todo=delete&id=32">delete</a>

Ich habe und es tut return false, aber die Seite umleitet noch auf den geklickt A href Wert. Normalerweise, wenn ich falsch zurückgeben, sollte es nicht, nicht wahr?

War es hilfreich?

Lösung 3

Ich entschuldige mich: es stellt sich heraus, ich war im Inneren des Hauptinhalt Behälter ein anderes Verhalten auf alle Anker befestigt wird. Ich fügte hinzu, eine Ausschlussklausel für DeleteButton und es funktioniert jetzt.

Hier ist mein letzter, arbeitet, Code:

var $tabs= $("#tabs").tabs({
        fx: {
            opacity: 'toggle'
        },
        load: function(event, ui) { 

            $('a', ui.panel).livequery('click',function() {

                // we need to exclude the listNav buttons AND deleteButton buttons from this behavior

                if($(this).parent().is(':not(".ln-letters")') && $(this).is(':not(".deleteButton")')){

                    $(ui.panel).load(this.href);
                    return false;
                }
            });
        }
    });

Und die Schaltfläche Löschen Verhalten funktioniert mit einem einfachen:

$('.deleteButton').live('click',function(e){
    return confirm('Are you sure?');
});

Andere Tipps

<a id="myId_1" href="#" class="deleteButton">delete</a>

$('.deleteButton').livequery('click',function(e){
        e.stopPropagation();
        if(confirm('Are you sure?')){
            functionForDelete($(this).attr("id").split("_")[1]);
        }
});

// OR ir you like goto href

<a id="myId1" href="url/delete/id.php?1" class="deleteButton">delete</a>
$('.deleteButton').livequery('click',function(e){
        e.stopPropagation();
        if(confirm('Are you sure?')){
            window.location=$(this).attr("href");
        }
});

Ändern livequery () zu leben (). jQuery unterstützt die gleiche Funktionalität. Gerade in FF getestet und es funktionierte mit Live (), aber nie gab mir sogar eine Aufforderung mit livequery ()

Versuchen Sie folgendes:

$('.deleteButton').livequery('click',function(e){
    if (confirm('Are you sure?')) {
        return true;
    } else {
        if (e.preventDefault) {
            e.preventDefault();
        } else {
            e.returnValue = false;
        }
        return false;
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top