单击jQuery更改样式

Sis*_*sir 4 javascript jquery

我正在尝试做一个待办事项列表应用程序.当我点击类"检查"的跨度,然后我想应用一种风格.然后跨度的类将更改为"取消选中".单击取消选中后,之前的样式将恢复.这是我到目前为止所做的html和jquery.

问题:问题是当我第一次单击它工作的范围时"取消选中"类被删除并且"检查"类被添加.然后第二部分不起作用.我怀疑第二部分不起作用,因为当document.ready()运行时,"check"类不在dom中.

任何帮助将不胜感激!谢谢!

HTML:

         <div class="note-body">
                <ol>
                    <li>M2u category shown. M2u category shown M2u category shown M2u category shown.
                        <span title="Delete" class="delete"></span>
                        <span title="Task Done!" class="done"></span>
                        <span class="handle"></span>
                        <span class="handle"></span>
                    </li>
                    <li>M2u category shown</li>
                    <li>M2u category shown</li>
                </ol>
            </div>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

    $('.note-body ol li span.check').click(function(){
            $(this).addClass('uncheck').removeClass('check');

            $(this).parent().css({'text-decoration':'line-through', 'color':'#5b382e'});

    });

   $('.note-body ol li span.uncheck').click(function(){
            $(this).addClass('check').removeClass('uncheck');

            $(this).parent().css({'text-decoration':'none', 'color':'#5b382e'});

});
Run Code Online (Sandbox Code Playgroud)

解决:

不得不使用live();因为我正在动态添加dom.这是最终代码(将样式放在类中):

$('.note-body ol li span.check').live('click', function(){
            $(this).addClass('uncheck').removeClass('check');
            $(this).parent().addClass('task-done').removeClass('task-notdone');
    });

   $('.note-body ol li span.uncheck').live('click', function(){
            $(this).addClass('check').removeClass('uncheck');
            $(this).parent().addClass('task-notdone').removeClass('task-done');
   });
Run Code Online (Sandbox Code Playgroud)

mbr*_*ing 5

你是对的.由于'uncheck'类被动态添加到DOM,因此您需要使用jQuery live API.试试这个:

   $('.note-body ol li span.uncheck').live('click', function(){
            $(this).addClass('check').removeClass('uncheck');

            $(this).parent().css({'text-decoration':'none', 'color':'#5b382e'});

});
Run Code Online (Sandbox Code Playgroud)