0

我有一些 javascript 按字母顺序 az 或 za 对我的 ul 进行排序。它在第一页上工作正常,但如果有超过一页,它会忽略第 2 页上的列表等。

因此,我不想使用 javascript 对 li 进行排序,而是想将选择传递回页面的查询并重新加载

这是我的脚本,现在大部分都是多余的。

var select = document.getElementById('organise');

        $('#organise').change(function() {

            if(select.value === 'A') {

                $('.recipeTable li').sortElements(function(a,b){

                    var aText = $.text([a]);
                    var bText = $.text([b]);

                    return aText.toLowerCase() > bText.toLowerCase() ? 1 : -1;
                });

            } else {

                $('.recipeTable li').sortElements(function(a,b){

                    var aText = $.text([a]);
                    var bText = $.text([b]);

                    return aText.toLowerCase() > bText.toLowerCase() ? -1 : 1;
                });

            }

        });

所以我想检测选定的下拉值(A 或 Z)并将其传递到 url 并重新加载。我被困住了;-?

富有的 :)

4

3 回答 3

1

我不确定这是解决问题的最佳方法,也许您应该详细说明哪些内容不适用于您的分页。无论如何,您可以通过执行以下操作来实现您需要做的事情(代码注释中的解释):

var queryString = {};

// Get the previous query string with a little help from PHP
// this shouldn't be a problem since you are already using PHP
// for your project.
queryString = <?php json_encode( $_GET ); ?>;

$('#organise').change( function() {

    // Set the sort property of the object to the value of the select.
    queryString.sort = $(this).val();

    // jQuery will help you serialise the JSON object back to
    // a perfectly valid query string (you may want to escape
    // characters)
    newQueryString = $.param( queryString );

    // Append the new query string
    window.location = newQueryString;

});

此功能将正确检查您是否已经有任何查询字符串并保留它;此外,如果用户多次更改选择,它不会添加几个查询字符串。

于 2013-02-14T10:04:23.070 回答
0

您可以更改网址并传递参数

 document.location.href = document.location.href + "?arg=" + document.getElementById("organise").value;
于 2013-02-14T09:32:37.063 回答
0

localstorage如果您不想在其中显示,您可以使用它url

例如:

  function Ascending()
  {
        $('.recipeTable li').sortElements(function(a,b){
            var aText = $.text([a]);
            var bText = $.text([b]);
            return aText.toLowerCase() > bText.toLowerCase() ? 1 : -1;
        });
  }
  function Descending()
  {
        $('.recipeTable li').sortElements(function(a,b){
            var aText = $.text([a]);
            var bText = $.text([b]);
            return aText.toLowerCase() > bText.toLowerCase() ? -1 : 1;
        });
  }


  if(localStorage.order=='A')
  { 
        return Ascending();
  }
  else
  {
       return Descending();
  }
  var select=document.getElementById('organise');
  $('#organise').change(function() {

        if(select.value === 'A') {
            localStorage.order=='A';
            return Ascending();

        } else {
            localStorage.order=='Z';
            return Descending();

        }

    });

有关更多信息,请localStorage参阅http://www.w3schools.com/html/html5_webstorage.asp

于 2013-02-14T09:46:02.280 回答