addClass不适用于textarea的特定id

时间:2013-10-25 17:09:09

标签: jquery

我想将一个类mceBasicEditor添加到带有id="abcd"的textarea中,以便当textarea标记中存在该类时,将加载tinymce工具栏。但是当我点击复选框时我会收到警告,但是在检查文本区域时,我看到没有添加类mceBasicEditor,也没有出现健康工具栏。

这是复选框的代码:

<form><input type="checkbox" id="mceCheck" name="mceCheck" value="1" >mce Toggle</form>

以下是文字区域:

<p id="description" style=""><label style=""  class="leftLabel" >Event Description</label><textarea name="event_description" id="abcd" style="" rows="25" cols="50" class="contact  mceNoEditor "></textarea></p>

Jqueru添加课程:

$('#mceCheck').click(function(){
    if($(this).attr('checked')){
        alert(1);
        $('#abcd').addClass('mceBasicEditor');
    }
    else
    {
        alert(0);
        $('#abcd').removeClass('mceBasicEditor');
    }
});

2 个答案:

答案 0 :(得分:0)

而不是:

$(this).attr('checked')

使用:

$(this).prop('checked')

来自jQuery的.prop()文档:

  

在特定情况下,属性和属性之间的差异非常重要。 在jQuery 1.6 之前,.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。 从jQuery 1.6 开始,.prop()方法提供了一种显式检索属性值的方法,而.attr()则检索属性。

答案 1 :(得分:0)

您可以尝试这样做(添加/删除class

$(function(){
    $('#mceCheck').change(function(){
        if($(this).is(':checked')){
            $('#abcd').addClass('mceBasicEditor');
        }
        else
        {
            $('#abcd').removeClass('mceBasicEditor');
        }
    });
});

Example Here.

更新 此外,toggleClass将起作用

$(function(){
    $('#mceCheck').change(function(){
        $('#abcd').toggleClass('mceBasicEditor');
    });
});

Example Here.