2016-10-25 6 views
1

У меня есть этот код для загрузки содержимого в comment-listdiv для пагинацией с помощью JQuery delegate:функция Делегат не работает в JQuery 2.1.1

JS:

<script type="text/javascript"> 
    $('#comment-list .pagination a').delegate('click', function() { 
     $('#comment-list').fadeOut('slow'); 

     $('#comment-list').load(this.href); 

     $('#comment-list').fadeIn('slow'); 

     return false; 
    });   

    $('#comment-list').load('index.php?route=simple_blog/article/comment&simple_blog_article_id=<?php echo $simple_blog_article_id; ?>'); 

</script> 

HTML:

<div id="comment-list"> 
    <div class="pagination"> 
    <div class="links"> 
    <b>1</b> 
     <a href="http://localhost/oc/index.php?route=simple_blog/article/comment&amp;simple_blog_article_id=5&amp;page=2">2</a> 
     <a href="http://localhost/oc/index.php?route=simple_blog/article/comment&amp;simple_blog_article_id=5&amp;page=3">3</a> 
     <a href="http://localhost/oc/index.php?route=simple_blog/article/comment&amp;simple_blog_article_id=5&amp;page=2">&gt;</a> 
     <a href="http://localhost/oc/index.php?route=simple_blog/article/comment&amp;simple_blog_article_id=5&amp;page=3">&gt;|</a> </div><div class="results">Showing 1 to 5 of 11 (3 Pages) 
    </div> 
    </div> 
</div> 

Но в действии Мой код не работает, а не l oad в div. после щелчка по ссылке на страницу, я вижу открытое новое окно и загружаю свой контент. Я тестирую свой код в версии jQuery 2.1.1 и думаю, что delegate не работает в jQuery 2.1.1.

Как исправить мою проблему?

+0

Изменить '$ ('# comment-list .pagination a'). Delegate ('click', function() {' to '$ ('# comment-list'). Find ('. Pagination'). Delegate ('a', 'click', function() {', так как' delegate' был обескуражен, вы должны использовать '.on' – DavidDomain

+2

Вы должны использовать' .on() '. Однако ваш синтаксис неверен, используйте '$ ('# comment-list .pagination'). delegate ('a', 'click', function() {' – Satpal

ответ

2

Начиная с jQuery 3.0, .delegate() устарел. Он был заменен методом .on() с jQuery 1.7, поэтому его использование было уже обескуражено.

Для более ранних версий, однако, это остается наиболее эффективным средством для использования делегирования событий. Дополнительная информация о привязке и делегировании событий содержится в методе on().

делегации Используйте событие on() вместо:

$('body').on('click', '#comment-list .pagination a', function() { 
    .... 
}); 

Надеется, что это помогает.