2013-10-24 26 views
0

我有一個帶3個窗格的傳送帶。首次加載頁面時,我希望左側按鈕被禁用,以便用戶可以在窗格中向後循環。禁用程序啓動時的傳送帶按鈕

我有一個工作diableButton功能:

function disableLButton() 
{ 
    $(".carouselBtnLeft").attr("disabled",true); 
} 

,當我把它返回到第一個窗格時能正常工作。

我wan't它也可以當程序第一次運行,我試圖簡單地使用firstRun布爾調用功能,但它不能正常工作禁用:

var firstRun = true; 

if(firstRun == true) 
{ 
    disableLButton(); 
    firstRun=false; 
} 

我敢肯定有一個病態簡單的解決方案...

解決:

我加了負載的功能體:

<body onload="load()"> 

負載功能然後:

function load() 
{ 
    disableLButton(true); 
} 
+0

只要使用'if(firstRun){...}',你不需要'== true'。 – meagar

+0

我也曾這樣做過,我只是做了雙重確定我正在做我想要嘗試===以及== – HastingsDirect

+0

不知道,但這可能是一個解決方案'$(function(){var firstRun = true ; 如果(firstRun ==真){ disableLButton(); firstRun = FALSE; }})' – Kuro

回答

0

你需要用道具(設置殘疾人屬性)代替ATTR()

function disableLButton() 
{ 
    $(".carouselBtnLeft").prop("disabled",true); 
} 

看這裏用於API方法prop()

http://api.jquery.com/prop/

屬性和屬性之間的差異在特定情況下可能很重要。在jQuery 1.6之前,.attr()方法在檢索某些屬性時有時會考慮屬性值,這可能會導致行爲不一致。從jQuery 1.6開始,.prop()方法提供了顯式檢索屬性值的方法,而.attr()檢索屬性。

disabled屬性被認爲是一個布爾屬性:

http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.3.4.2

和不消除殘疾人屬性使用時不要忘記:

$(".carouselBtnLeft").removeProp("disabled"); 

你不要因爲即使將其設置爲false即使沒有值也會被視爲true,所以使用removeProp()來刪除禁用的屬性