2015-05-29 5 views
1

Что может быть неправильным в этом заявлении?jquery 2.1.4 on not working

$(document).on('click',".post_like",function(e) { 
    var postId = $(this).data('id'); 
    var postOrigin = $(this).data('originalid'); 
    var interface_type = 'like'; 

    alert('test'); 

    //interact_with_post(); 
    //e.stopPropagation(); 
}); 

Как я использую JQuery 2.1.4 Ожидалось, я мог бы взаимодействовать с Ajax загружены элементами, но я не могу даже щелкнуть на любом элементе.

PS: Кажется, что я не могу запустить() с jquery 1.11.3 на firefox (не проверял другие браузеры).

UPDADE

HTML

<div class="panel-footer" style="background:#444; color:#FFF; border-radius:0 0 8px 8px"> 
<div class="row"> 
<div class="col-lg-3 text-center" style="border-right: 1px solid #FFF; width:24%; float: left"> 
<i class="fa fa-clock-o"></i> 
<br> 
14 hrs ago 
</div> 
<div class="col-lg-3 text-center **post_like**" style="width:24% float: left ; border-right: 1px solid #FFF" data-originalid="73" data-id="73"> 
<i id="like_icon73" class="fa fa-heart-o "> </i> 
<br> 
<normal id="post_like_count73"> 0</normal> 
</div> 
<div class="col-lg-3 text-center post_comment" left"="" float:="" style="border-right: 1px solid #FFF; width:24%" data-item="73"> 
<i class="fa fa-comment"></i> 
<br> 
0 
</div> 
<div class="col-lg-3 text-center post_unsave" style="width:24% float: left" data-originalid="73" data-id="73"> 
</div> 
</div> 

Итак, идея это, как я занимаюсь разработкой социальной сети проекта, я отслеживания событий Arround посты:

У меня есть две функции, когда что-то щелкнуто:

В этом случае, когда щелкнуть сообщение класса (родительский клас s) он запускает функцию (исследование), которая просматривает эту часть, была нажата (комментарий, сохранение, например, открытая мода и т. д.) и хранит информацию, предназначенную для изучения поведения. В то же время он запускает функцию вознаграждения (предназначенную для их взаимодействия) - эта функция делает это: если пользователь щелкнул, добавьте 1 к подобному счету сообщения, измените класс на post_unlike и измените значок.

Все работает как шарм с включенным ("click", function() {}); Кроме того, я не могу отслеживать живые клики (если класс был post_like, даже после того, как я изменил его на post_unlike, он продолжает вести себя так же, как и post_like).

Теперь, когда я запускаю ту же функцию с включенным ('click', 'class', function() {}); У меня даже нет ответа на терминал. Не на этом, а не на ajax загруженные сообщения перед window.onload.

Когда я использовал live(), он работал как шарм.

+1

Любые ошибки консоли? Можете ли вы включить соответствующую разметку? – Goose

+1

Прекрасно работает для меня. –

+0

Не могли бы вы также разместить HTML-код? Это похоже на то, что вы пытаетесь отслеживать клики на кнопке Facebook Like или что-то в этом роде. В большинстве случаев эти кнопки загружаются внутри iframe и, следовательно, недоступны, если вы не запустите код из домена, на котором подана кнопка. – Jasper

ответ

0

Это работает очень хорошо для меня ... (Firefox 38.0.1, Chrome 42.0.2311.152 м, Chrome 43.0.2357.81 м)

$(document).on('click',".post_like",function(e) { 
 
    var postId = $(this).data('id'); 
 
    var postOrigin = $(this).data('originalid'); 
 
    var interface_type = 'like'; 
 

 
    alert('test'); 
 

 
    //interact_with_post(); 
 
    //e.stopPropagation(); 
 
});
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script> 
 
<div class="post_like">Click Me!</div>

+0

Фрагмент не работает для меня на хроме 46 –

+0

@ boban984 Он работает, но хром 46 добавляет некоторые логики песочницы, которые не позволят всплывать. Похоже, что stackoverflow необходимо немного обновить свою логику, чтобы можно было получать предупреждения (добавьте ключевое слово allow-modals). Об этом уже сообщалось здесь: http: //meta.stackoverflow.com/questions/297048/add-allow-modals-to-the-sandbox-of-stack-snippets-snippets-are-broken-in-chrome –

+0

Да, вы правы –