2016-02-23 44 views
1

我已經添加了一些自定義元素,將包含在我的WooCommerce賬戶頁面中,以便查看訂單歷史記錄。不幸的是,該頁面設置了選項卡,只顯示與活動選項卡有關的信息。Jquery腳本不能改變CSS的變化

我對jquery不是很熟悉,但我認爲使用jquery隱藏我在訂單歷史記錄顯示爲無時添加的div時會很簡單。

我添加下面的腳本到我的主題的main.js文件:

$(document).ready(function(){ 
    var display = $('.my_account_orders'); 
    if(display.css("display") == "none") { 
     $('.paging-nav').css("display","none"); 
    } 
}); 

當類.my_account_orders現在沒有的顯示應該我添加了DIV(.paging-NAV)更改爲沒有顯示。但它不起作用。

這個腳本有什麼問題,或者我需要做一些特殊的事情來啓動它嗎?因爲它在我的主題的main.js文件中,所以我使用$(document).ready(function()我認爲它只是加載頁面。

任何幫助,這將不勝感激。

+2

你已經在你的if語句有一個錯誤的$,嘗試'如果(display.css( 「顯示」)== 「無」){' –

+1

你沒有變種'$ display' – CMedina

+1

您剛剛做出的修改是否提供了有關該問題的提示?將'display'與'$ display'進行比較。 –

回答

1

而不是使用:

var display = $('.my_account_orders'); 

它落實到if語句是這樣的:

if($('.my_account_orders').css("display") == "none") { 

因爲最初它試圖找到一個名爲$顯示變量,所以它會返回一個語法未定義的錯誤。

0

你在if語句中有一個錯誤的$。這應該工作,而不是:

$(document).ready(function(){ 
    var display = $('.my_account_orders'); 
    if(display.css("display") == "none") { 
     $('.paging-nav').css("display","none"); 
    } 
}); 

也請記住,你的var display只會有一類my_account_orders,因此,如果有與該類多個元素的第一個元素匹配,並且他們並不都有相同的顯示,你可能會得到意想不到的結果。

+0

我嘗試過使用它,但它不起作用。我同時檢查了Firefox和Chrome。類.my_account_orders僅在此頁面上使用一次。 – nickyb

+0

@nickyb你可以在jsfiddle中分享你正在使用的渲染標記嗎?這將幫助我們重現問題並找到解決方案。 –

0

試試這個:

$(document).ready(function(){ 
var display = $('.my_account_orders'); 
if(display.css("display") == "none") { 
     $('.paging-nav').css("display","none"); 
    } 
}); 
0

我相信這是檢查是否有css財產,如顯示器,以確定是否一個元素是hidden或者不是一個很蹩腳的方式。使用jQuery,你可以使用:hidden選擇器,它決定一個元素是否爲hidden,並返回一個bool的值。

$(document).ready(function(){ 
    if($('.my_account_orders').eq(0).is(":hidden")) // eq(0) is optional - it basically targets the 1st occurring element with class 'my_account_orders' 
    { 
     $('.paging-nav').css("display","none"); 
    } 
}); 

例子:https://jsfiddle.net/DinoMyte/sgcrupm8/2/

+0

謝謝,但那也行不通。也許有什麼阻止了國家的變化?我會繼續四處尋找,但隱藏起來很容易,並且可以通過點擊事件再次使該元素可見。 – nickyb

+1

我想在這個時候,你可能不得不發佈的HTML以及瞭解確切的問題。 – DinoMyte