使用委托交换类

时间:2013-04-05 10:43:18

标签: jquery css razor delegates

我使用jquery委托函数来切换类没有成功,我想要的是切换类

<li class="unselected-values">

<li class="<li class="unselected-values">

当客户点击标签时,任何想法错误,任何建议或帮助将不胜感激。日Thnx

    <ul class="option-list swatch pockets">
                            @foreach (var pvaValue in attribute.Values)
                            {                                    
                                <li class="unselected-values">
                                    <input id="@(controlId)_@(pvaValue.Id)" type="checkbox" value="@pvaValue.Id" checked="@pvaValue.IsPreSelected" />
                                    <label for="@(controlId)_@(pvaValue.Id)" style="background-image:url(@(pvaValue.MenuIcon))">@pvaValue.Name</label>
                                </li>
                            }
                        </ul>

<script type="text/javascript">
                      $(document).ready(function() {
                          $('.option-list swatch pockets').delegate('label', 'click', function(event) {
                              $(this).parent().toggleClass('selected-value');
                              console.log($(this).parent);
                              alert($(this).parent);
                              return false;

                          });


                      });
                                </script>

2 个答案:

答案 0 :(得分:1)

试试这个:

$('.option-list.swatch.pockets').delegate('label', 'click', function (event) {
    $(this).parent().toggleClass('unselected-values selected-value');
    console.log($(this).parent);
    alert($(this).parent);
    return false;
});

您的选择器$('.option-list swatch pockets')不正确。 您需要像$('.option-list.swatch.pockets')这样做才能正确使用它。

答案 1 :(得分:1)

您的选择器$('.option-list swatch pockets')错误,它表示位于pockets元素内的元素swatch,该元素位于具有类option-list的元素内。

尝试

$('.option-list.swatch.pockets')

它表示包含option-listswatchpockets类的元素。

另外,为了在两个类之间切换,您需要将这两个类传递给toggleClass方法。

$(document).ready(function() {
    $('.option-list.swatch.pockets').delegate('label', 'click', function(event) {
        $(this).parent().toggleClass('unselected-values selected-value');
        return false;
    });
});

演示:Fiddle