0

私はワードプレスと高度なajaxページローダーと呼ばれるプラグインを使用しています。 http://wordpress.org/extend/plugins/advanced-ajax-page-loader/

私はphp、javascript、jqueryにある程度精通していますが、決して専門家ではありません。特定のページをajaxの読み込みから除外する次のコードブロックがあり、うまく機能します。

jQuery(scope + "a").click(function(event){
    //if its not an admin url, or doesnt contain #
    if (  this.href.indexOf(AAPLhome) >= 0 && this.href.indexOf('/wp-') < 0 && this.href.indexOf('#') < 0 && this.href.indexOf('/search') < 0 && this.href.indexOf('/2013') < 0 && this.href.indexOf('/2012') < 0 && this.href.indexOf('/2011') < 0 && this.href.indexOf('/feed') < 0 && this.href.indexOf('/portfolio') < 0 && this.href.indexOf('/store') < 0 ){
        // stop default behaviour
        event.preventDefault();
});

ご覧のとおり、URLに特定の文字列が含まれるページを除外しています。

ただし、ホームページのリンクをターゲットにする必要があります。この方法でホームURLを挿入すると、すべてのページにホームURLが含まれるため、すべてのページが除外されます。このコードブロックにhasClassステートメントを挿入できるようにしたいので、「homelink」のクラスを持つリンクを除外できます。

この次のことは私にthis.hasClassのエラーを与えました。関数ではありません。

this.hasClass('homelink')

だから私は何か間違ったことをしているに違いないが、私が何を知っていれば私はとんでもない。

私はこれらのリンクを見てみましたが、あまりうまくいきませんでした。

Jquery hasClass+Ifステートメント

jQuery —hasClassがifステートメントでうまく再生されない

http://api.jquery.com/hasClass/

4

2 に答える 2

5

あなたは包む必要がありthisます$()

$(this).hasClass('homelink');

thisその場合はDOMElementであり、dom要素にはメソッドがありませんhasClass。に渡すthisことで、メソッド$()を持つjQueryオブジェクトになります。hasClass

于 2013-01-15T21:55:51.283 に答える
0

:not()セレクターを使用した別の方法:

jQuery(scope + "a:not(.homelink)").click(function(event){
于 2013-07-12T20:25:50.710 に答える