2012-02-19 10 views
2

入力ボックスがキーアップされていない限り、リンクのPJAXクリックを防止したいと思います。jquery PJAX/AJAX preventDefault()はリンクのクリックをブロックしていません

は、ここでは、コードです:

$('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();             
    } 
}); 

私の問題は、条件が正しく判定されているにもかかわらず、PJAXはまだかかわらずpreventDefault()のページをロードすることです。

これはなぜ機能していないのですか?

答えて

3

pjax機能は、あなたが設定した設定で常に起動するようです。

ただし、次のように動作するはずです:

$(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; 
    } 
}); 
+0

dazbradburyやあ、はい、これは動作します!ありがとう! –

+0

すばらしい答え! :) –