2013-06-20 41 views
1

我在html頁面上有一個複選框,當它被選中時,我想更改一個div的ID和另一個div的類。當用jQuery單擊複選框時更改類和ID

這是我寫的做它的代碼:

HTML:

<li><input type="checkbox" name="x" value="1" class="home6" /> Check this</li> 

JQuery的:

$(function(){ 
    if ($('.home6').is(':checked')) { 
     $('.hider2').addClass('.hiderx').removeClass('.hider2'); 
     $('#next1').attr('id','next4'); 
    }; 
}; 

但是這對我的HTML沒有影響。

我已經嘗試在控制檯中進行調試,但它不會引發錯誤。

我不認爲事件會被觸發,因爲我已經嘗試在if語句中添加警報,但是,讀取了documentation for the :checked selector,但此代碼接縫合適。

+2

那麼你的'更改事件'代碼在哪裏?順便說一句,你不應該改變一個元素的屬性ID,沒有理由去做 –

+1

你不需要'addClass'調用參數中的'.' –

+1

[示例](http://jsfiddle.net/DNTrs/3)。 – Vucko

回答

1

試試這個:

<li><input type="checkbox" name="x" value="1" class="home6" /> Check this</li> 

和相應的jQuery代碼:

$(function(){ 
    $('.home6').on('change', function() { 
     if($(this).is(':checked')) 
     { 
      $('.hider2').addClass('hiderx').removeClass('hider2'); 
      $('#next1').prop('id', 'next4'); 
     } 
    }); 
}); 
1

您應該將changeclick事件綁定到您的複選框以執行腳本。 (。)

,並在你的代碼點在addClassremoveClass是不正確

0

試試這個: -

$(function(){ 
    $($('.home6').change(function(){ 
    if ($(this).is(':checked')) { 
     $('.hider2').addClass('hiderx').removeClass('hider2'); 
     $('#next1').attr('id','next4'); 
    }; 
    }; 
}); 
+1

你的'addClas()'和'removeClass()'中的'.'字符是多餘的。你也有一個錯誤的jQuery函數(例如'$($(')。 – BenM

+0

@BenM謝謝... –

0

據工作:http://jsfiddle.net/balintbako/KK2Xr/

if ($('.home6').is(':checked')) { 
    $('.hider2').addClass('hiderx').removeClass('hider2'); 
    $('#next1').attr('id','next4'); 
}; 

你是如何調用該函數?您需要製作一個動作處理程序或在document.ready上調用它,因爲它在小提琴中。