2014-12-10 3 views
1

Это мой код JQuery, он (класс переключения) не работает.
Я предполагаю, что это контекст этого, но console.log() показывает что это правильный элемент.jQuery toggleClass() внутри on() не работает

// .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> 
... 
... 
+0

whther '.dynamic-контента ul' элемент также создается динамически –

+0

нет, динамическое содержимое только ЛУ х. событие инициируется, а вторая строка (событие 'click' для ввода, работает) – yossi

+0

Определить, не работает? –

ответ

0

Как @ A.Wolff упомянул в своем комментарии, ответ в том, что код работает просто отлично.
проблема заключается в том, что запускающее событие, является отключив элемент ..

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);