2013-01-15 70 views
0

我正在使用wordpress和一個名爲高級ajax頁面加載器的插件。 http://wordpress.org/extend/plugins/advanced-ajax-page-loader/jquery if語句和hasClass?

我對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中的頁面。

但是,我需要定位主頁鏈接,並通過這種方式插入家庭網址,所有頁面包含家庭網址,因此他們都被排除在外。我希望能夠在這段代碼中插入一個hasClass語句,這樣我就可以排除一個具有「homelink」類的鏈接。

這下面給了我一個錯誤this.hasClass不是一個函數。

this.hasClass('homelink') 

所以我一定是做錯了事,但如果我知道是什麼,我就會生氣。

我試過看過這些鏈接,但沒有得到太多的結果。

Jquery hasClass + If Statement

jQuery — hasClass in if statement not playing nicely

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

+0

渦卷這在$()。 「$(this).hasClass('homelink')」 –

回答

5

你需要在這種情況下,包this$()

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

this是一個DOMElement和DOM元素沒有hasClass方法。通過將this傳遞給$(),它變成了一個擁有hasClass方法的jQuery對象。

+0

感謝您的回覆Kevin。我只是在我的if語句的末尾插入它? – binga30

+0

是或在開始時。我會在開始的時候這麼做,以便在'&&'的長列表之前顯示 –

+0

謝謝,它修復了我的錯誤。唯一的事情是它倒退了。猜猜我需要插入一個!某處。 – binga30

0

的另一種方法與:not()選擇器:

jQuery(scope + "a:not(.homelink)").click(function(event){