【问题标题】:Cant get Isotope to work with AJAX (code samples)无法让 Isotope 与 AJAX 一起工作(代码示例)
【发布时间】:2013-07-29 14:23:24
【问题描述】:

我正在尝试整合同位素,但我无法让它与 ajax 一起使用。

代码如下:

<script type="text/javascript">

var currentPage = 1;

$(function(){
    var getUrl = 'loadMovies.php';
    var getQuery = 'genrefilter='+movieSelection.elements["genreFilter"].value;
    getQuery += '&yearfilter='+movieSelection.elements["yearFilter"].value;
    getQuery += '&titlesort='+movieSelection.elements["titleSort"].value;
    getQuery += '&ratingsort='+movieSelection.elements["ratingSort"].value;
    getQuery += '&yearsort='+movieSelection.elements["yearSort"].value;
    getQuery += '&runtimesort='+movieSelection.elements["runtimeSort"].value;
    getQuery += '&currentPage='+currentPage;

    var $container = $('#movieBox');
    //$container.isotope({itemSelector: '.movie'});

    $.ajaxSetup({cache:false});  
    var ajax_load = "<img class='loading' src='images/load.gif' alt='loading...' />";

    //$("#genreFilter").change(function(){$container.isotope('insert', ajax_load).load(getUrl, getQuery);});


    $("#genreFilter").change(function(){$('#movieBox').html(ajax_load).load(getUrl, getQuery);});
});

HTML 只是 ""

注释掉同位素线后,我实际上得到了按预期显示的 div,但由于我不知道如何在同位素线中工作,所以无法让它工作。

我正在尝试将同位素与没有 ajax 的“插入”方法集成。

摘自:http://isotope.metafizzy.co/docs/adding-items.html


"插入方法

更有可能的是,您想使用 insert 方法,该方法可以完成 addItems 遗漏的所有操作。 insert 会将内容追加到容器中,过滤新内容,对所有内容进行排序,然后触发重新布局,以便正确布局所有项目元素。

var $newItems = $('<div class="item" /><div class="item" /><div class="item" />');
$('#container').isotope( 'insert', $newItems );

最后一行是我需要与 ajax 行集成的内容,但我只是看不到可以放置它的位置。我尝试了几种方法,其中一种显示在注释掉的行中。

谁能看出问题所在?

【问题讨论】:

    标签: ajax jquery jquery-isotope


    【解决方案1】:

    让它像这样工作:

    $(function(){
    
            var $container = $('#movieBox');
    
            $container.isotope({
                itemSelector: '.movie'
            });
    
            $.ajaxSetup({cache:false});  
            var ajax_load = "<img class='loading' src='images/load.gif' alt='loading...' />";
    
            $('#genreFilter').change(function(){
    
    $('#genreFilter').change(function(){
    
                var getQuery = 'loadMovies.php?';
                getQuery += 'genrefilter='+movieSelection.elements["genreFilter"].value;
                getQuery += '&yearfilter='+movieSelection.elements["yearFilter"].value;
                getQuery += '&titlesort='+movieSelection.elements["titleSort"].value;
                getQuery += '&ratingsort='+movieSelection.elements["ratingSort"].value;
                getQuery += '&yearsort='+movieSelection.elements["yearSort"].value;
                getQuery += '&runtimesort='+movieSelection.elements["runtimeSort"].value;
                getQuery += '&currentPage='+currentPage;
    
                return $.ajax({
                    cache:false,
                    url: getQuery,
                    success: function(data){$container.isotope('insert', data)}
                    });
                });
    
        });
    

    【讨论】:

    • 我有几乎完全相同的代码,但它对我不起作用:(
    • @leen3o 这是一个老问题,同位素可能已经改变,或者只是某个地方的一个小错误,很容易错过,所以请尝试仔细检查任何缺失的语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多