2017-08-28 81 views
-1

对不起,我的英语不好! 我有一个jQuery的问题,我只是不明白。 我尝试切换一堆li元素的Classnames,但jQuery-Collection的工作原理并不像怀疑的那样。

HTML:

<div> 
    <input id="checkPresetPreview" type="checkbox" /> 
    <label for="checkPresetPreview">Vorschau an/aus</label> 
</div> 

<ul class="presetList active" data-presetList="items"> 
    <li class="presetItem" data-preset="fire">Feuerschwert</li> 
    <li class="presetItem" data-preset="potion">Heiltrank</li> 
    <li class="presetItem" data-preset="food">Brot</li> 
</ul> 

JS/jQuery的:

$(function() { 
    var jCheckPresetPreview = $('#checkPresetPreview'), 
     jPresetItems = $('.presetItem'); 



    /* Event-Handling */ 

    jCheckPresetPreview.change(function (e) { 
     var isChecked = e.target.checked; 

     jPresetItems.each(function() { 
      console.log('$(this): ', $(this)); 
      console.log('toggleCLass: ', $(this).toggleCLass); 

      $(this).toggleCLass($(this).data('preset'), isChecked); 
     }); 
    }); 

this是原始DOM的元素,对不对?而$(this)应该是该元素的jQuery版本。但是$(this).toggleCLassundefined。为什么!?

我不明白。请帮忙!

+4

'toggleCLass'应该是'toggleClass'(注意,外壳)JS是大小写敏感的。 – litelite

+0

其'toggleClass'不是'toggleCLass' –

+0

哦,我的,我是盲人。非常感谢! :-) –

回答

1

应当$(this).toggleClass

+0

哦,我的,我是盲人。非常感谢! :-) –

+0

呃...如何关闭这个问题? –