避免在jQuery中重复的功能

时间:2012-05-07 15:20:29

标签: jquery wordpress-plugin

我在我的网站上使用了两个脚本

  1. jQuery / Ajax加载接下来的三个帖子而不重新加载页面
  2. jQuery在iFrame /模态对话框中打开每个帖子
  3. 问题是:点击“加载更多帖子”,然后点击前3个帖子中的一个,帖子打开两次。

    我需要找到一种方法来删除前一个占位符的函数superbox()并再次为新占位符添加它(否则新帖子只在普通窗口中打开)。

    网站为http://gotoviproekti-och.com

        if(pageNum <= max) {
        // Insert the "More Posts" link.
        $('.content-middle')
            .append('<div class="pbd-alp-placeholder-'+ pageNum +'"></div>')            
    
            .append('<p id="pbd-alp-load-posts"><a href="#">Покажи още готови проекти</a></p>');
    
        $(function(){
            $.superbox();
            });
            //Single Page Carousel
            $(function() {
            $(".image").click(function() {
            var image = $(this).attr("rel");
            $('#image').hide();
            $('#image').fadeIn('slow');
            $('#image').html('<img src="' + image + '"/>');
            return false;
                });
            });
        }
    
    
    
    /**
     * Load new posts when the link is clicked.
     */
    $('#pbd-alp-load-posts a').click(function() {
    
        // Are there more posts to load?
        if(pageNum <= max) {
    
            // Show that we're working.
            $(this).text('Loading...');
    
            $('.pbd-alp-placeholder-'+ pageNum).load(nextLink + ' .pic',
                function() {
                    // Update page number and nextLink.
                    pageNum++;
                    nextLink = nextLink.replace(/\/page\/[0-9]?/, '/page/'+ pageNum);
    
                    // Add a new placeholder, for when user clicks again.
                    $('.content-middle')
                    .append('<div class="pbd-alp-placeholder-'+ pageNum +'"></div><div class="clearfloat"></div>')
    
                    $.superbox.detach();
    
                    $.superbox();
    
    
                    // Update the button message.
                    if(pageNum <= max) {
                        $('#pbd-alp-load-posts a').text('Load more posts');
                }
            );
        } else {
            $('#pbd-alp-load-posts a').append('.');
        }   
    
        return false;
    });
    

    });

1 个答案:

答案 0 :(得分:1)

使用$.on(),您只需将事件绑定一次。

$('#posts-container').on('click', '.post', doPostEvent);