Frage

Ich möchte verhindern, dass PJAX auf einen Link klickt, es sei denn, ein Eingabefeld ist ausgestattet.

Hier ist der Code:

$('a.pjax').pjax({container: '#main_content'}).live('click', function(event){ 
   if(keyed){ 
        console.log('yes, you typed');
   }
   else if(keyed==false){
        console.log('no, please type something');
        event.preventDefault();                                                 
   }
}); 

Mein Problem ist, dass PJAX trotz der korrekten Bedingung die Seite immer noch lädt, unabhängig von der preventDefault().

Irgendwelche Gedanken darüber, warum das nicht funktioniert?

War es hilfreich?

Lösung

Es scheint, dass die PJAX-Funktion immer mit der Einrichtung abfeuern wird, die Sie an Ort und Stelle haben.

Das Folgende sollte jedoch funktionieren:

$(document).on('click', 'a.pjax', function (event) {
    if (keyed) {
        console.log('yes, you typed');
        return $.pjax.click(event, '#main_content');
    }
    else {
        console.log('no, please type something');
        return false;
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top