2011-10-19 99 views
0

我試圖做一個腳本,當點擊該按鈕時,將一個左右邊框添加到3個按鈕的一行中的按鈕,否則保持不帶邊框。我到目前爲止的代碼是:從jquery設置樣式屬性

$("#popular").click(function(){ 
    clearBorders(); 
    //make borders here (this works) 
}); 

$("#suggestions").click(function(){  
    clearBorders(); 
    //make borders here (this works) 
}); 

$("recent").click(function(){  
    clearBorders(); 
    //make borders here (this works) 
}); 

function clearBorders(){ 
    $('popular').css("border", "solid"); 
    $('suggestions').css("border", "none"); 
    $('recent').css("border", "none"); 
}  
}); 

我能夠創建邊界罰款,但由於某些原因,clearborders方法是行不通的。我知道這個函數正在被調用,因爲如果我在它的開始處發出警報,它就會顯示出來。爲什麼這個功能不起作用?

回答

6

你的選擇缺少龍頭ID(#)或類(。)標誌符號在你clearBorders()函數

+0

無論是id選擇#或類選擇。 – jcvandan

+0

@dormisher true。以#出現在其他選擇器的基礎上。我會修改答案 –

+0

好點,沒有注意到,這是最有可能的# – jcvandan

1

我做了這個測試,你需要做$(「文件」)。就緒(函數(){});包裝。我已經調整過使用類,所以你可能會或可能不會使用ID。至少下面的測試用例在我處理document.ready之前不適用於我。

<script type="text/javascript"> 
$("document").ready(function(){ 
    $(".popular").click(function(){ 
     clearBorders(); } 
    ); 

    $(".suggestions").click(function(){   
     clearBorders(); 
     // make borders here (this works) 
    }); 

    $(".recent").click(function(){  
    clearBorders(); 
    //make borders here (this works) 
    }); } 
); 
    function clearBorders(){ 
     $('.popular').css("border", "1px solid red"); 
     $('.suggestions').css("border", "1px solid red"); 
     $('.recent').css("border", "1px solid red"); 
    }; 
    </script> 

豐富