jquery toggleClass()里面on()不起作用

时间:2014-12-10 10:10:07

标签: jquery toggleclass jquery-on

这是我的JQuery代码,它(类切换)不起作用。
我假设它是这个的上下文,但是console.log()表明它是正确的元素。

// .dynamic-content AND ul are static. the event is delegated! 
$(".dynamic-content ul").on(
  'click',
  ".point_element",
  function(eve){
    $(this).css("border","2px solid green"); // works
    $(this).toggleClass("selected");         // not working
    $(this).prop("class","selected");        // works
    $("input", this).trigger('click');       // works
  }
);

HTML:

<div class="dynamic-content">
<ul>
<li id="point_element_2877" class="element point_element">
  <fieldset><label><input value="po7" type="checkbox"></label></fieldset>
  <div class="inlined">
    <table>
      <tr><td>some text</td></tr>
    </table>
  </div>
</li>
...
...

2 个答案:

答案 0 :(得分:0)

如果您的内容是动态生成的,那么您必须将事件委托给最近的静态父级或document尝试下面的一个:

$("staticParentID/Class").on('click', ".point_element", function (eve) { // static parent

或者这个:

$(document).on('click', ".point_element", function (eve) { // delegated to document

语法是:

$(delegatedParent).on(event, selector, callbackFn);

答案 1 :(得分:0)

正如@ A.Wolff在评论中提到的,答案是代码工作得很好 问题是触发事件,取消选中元素..