2011-11-24 46 views
1

我的代碼有效,但我想清理它並可能重用它而不是複製它。傳遞一個JavaScript函數的鏈接

我有一個選擇框,每個值選中基於它們的類標記檢查或取消選中一組複選框。

是否有可能在類名.task_mod傳遞給函數,其中以下

$('.inside_border a.task_mod :checkbox').attr('checked', true); 
$('.inside_border a.task_mod').css("background-color","#9dc6f4"); 
$('.inside_border a.task_mod').css("color","#fff"); 

都可以應用?這樣,我可以使用此功能的所有其他複選框,如

check_mod(「。links_mod」);

$('[name="workspace_type"]').change(function() 
    { 
     if($(this).val() == "0") 
     { 
      $('.inside_border a :checkbox').attr('checked', false); 
      $('.inside_border a').css("background-color","#dfdfdf"); 
      $('.inside_border a').css("color","#6e6d6d"); 
     } 
     else if($(this).val() == "small_biz") 
     { 
      $('.inside_border a.task_mod :checkbox').attr('checked', true); 
      $('.inside_border a.task_mod').css("background-color","#9dc6f4"); 
      $('.inside_border a.task_mod').css("color","#fff"); 
     } 
    }); 

的選擇框

<select name="workspace_type"> 
            <option value="0">select please</option> 
            <option value="small_biz">Small Business</option> 
            <option value="freelance">Freelancer</option> 
            <option value="startup">Startup Company</option> 
            <option value="small_team">Small Team</option> 
            <option value="academic">Academic</option> 
            <option value="media">Media Organization</option> 
            <option value="personal">Personal</option> 
           </select> 

的複選框

<div class="inside_border"> 
<a href="#" class="task_mod"><input type="checkbox" name="add_mod"/>Tasks</a> 
<a href="#" class="docs_mod"><input type="checkbox" />Documents</a> 
<a href="#" class="discuss_mod"><input type="checkbox" />Discussions</a> 
<a href="#" class="links_mod"><input type="checkbox" />Links</a> 
<a href="#" class="images_mod"><input type="checkbox" />Images</a> 
<a href="#" class="customer_mod"><input type="checkbox" />Customers</a> 
<a href="#" class="project_mod"><input type="checkbox" />Projects</a> 
<a href="#" class="members_mod"><input type="checkbox" />Members</a> 
</div> 

如果你不明白,我可以解釋。 P.S.我知道我應該使用複選框,但ID(S)...

+0

你可以在www.jsfiddle.net重新創建你的例子嗎? –

+0

它已被回答Kees,謝謝。但如果你仍然想讓我重新創造它,我可以。 – Shoppyonline

回答

1

創建此功能:

function check_mod($target){ 
    $target.css({ 
     "background-color": "#9dc6f4", 
     "color":"#fff" 
    }) 
    .find(":checkbox").attr('checked', true); 
} 

,比使用這樣的:

check_mod($('.inside_border a.task_mod')); 
+0

輝煌! :) 謝謝。將嘗試此取消選中複選框。 – Shoppyonline

0

當然

$('.inside_border a.'+class+' :checkbox')

0

上課可以通過$(this).parent()[0].className完成。