检查整数是否处于顺序条件jquery

时间:2015-03-26 15:07:05

标签: jquery sorting

嗨,我仍然围绕着jQuery。我对它很新,每天都在学习。我更习惯于javascript,因为你知道一步一步发生了什么。

即使jQuery是"写得更少,做更多"功能没有清楚解释,我觉得很混乱。

无论如何我的问题......我有一个可排序的函数,其中随机列出了7个数字。在这种情况下,7,1,6,2,3,5,4 ...用户可以按照他们希望的任何顺序拖动数字。我希望jQuery发出警报说“#34;做得好”# 34;当用户匹配.sortable" #list"数字顺序正确。

我知道jQuery代码中有javascript的元素。不确定jQuery的等价物是什么?

感谢。

HTML:

 <ul id="list" class="inline-list no-bullet">
                            <li>7</li>
                            <li>1</li>
                            <li>6</li>
                            <li>2</li>
                            <li>3</li>
                            <li>5</li>
                            <li>4</li>
   </ul>

jQuery的:

$(document).ready(function () {
            $("#list").sortable({

                revert: true,
                containment: 'parent',
                update: function (event, ui) {

                    alert("List updated");
                }

                var orderedList = [1, 2, 3, 4, 5, 6, 7];

                    for (i = 0; i <list.length; i++)
                       {
                             if (orderedList[i] == "list"[i]) 
                        {
                             alert('Well Done!');

                }

            });


        });

1 个答案:

答案 0 :(得分:1)

你有很多问题:

  • 声明变量时不使用引号(var "trueOrder" = ...):var trueOrder = [1, 2, 3]
  • orderedList应该是trueOrder
  • 访问变量时,请勿使用引号:"list"[i]list[i](除非您要访问对象键值:window["some_global"])。

请参阅下面的固定代码。

$(document).ready(function () {
    var $list = $("#list");
    $list.sortable({
        revert: true,
        containment: 'parent',
        update: function (event, ui) {
            var trueOrder = [1, 2, 3, 4, 5, 6, 7];
            var isFine = true;
            var list = $.map($list.children(), function (c) {
                return parseInt($(c).text());
            });
            
            for (i = 0; i < list.length; i++) {
                if (trueOrder[i] !== list[i]) {
                    isFine = false;
                    break;
                }
            }
            
            if (isFine) {
                alert("Well done!");
            }
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>
<ul id="list" class="inline-list no-bullet">
    <li>7</li>
    <li>1</li>
    <li>6</li>
    <li>2</li>
    <li>3</li>
    <li>5</li>
    <li>4</li>
</ul>