JQuery PJAX/AJAX PURDDEFAULT () Blockieren Sie den Link nicht daran, zu klicken
-
27-10-2019 - |
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?
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