【问题标题】:jQuery sortable label click event is not workingjQuery 可排序标签单击事件不起作用
【发布时间】:2017-01-31 16:53:46
【问题描述】:

我创建了一个排序几个城市的列表,并使用 jQuery-ui 插件进行可拖动排序。问题是排序工作正常,但是当我尝试序列化值时它什么也不做,当我检查 Chrome 开发工具时,我看到以下错误:

错误:未捕获的错误:无法在可排序之前调用方法 初始化;试图调用方法“序列化” jquery-1.8.3.min.js:487

v.extend.error jquery-1.8.3.min.js:487(匿名函数)jquery-ui-1.10.1.custom.min.js:6 v.extend.each jquery-1.8。 3.min.js:536 v.fn.v.each jquery-1.8.3.min.js:416 e.fn.(匿名函数) jquery-ui-1.10.1.custom.min.js:6(匿名函数)dragCity.php:365 v.event.dispatch jquery-1.8.3.min.js:1141 o.handle.u jquery-1.8.3.min.js:1061

PHP/HTML 代码:

<div class="row-fluid" id="sortable_portlets">
      <div class="span4 column sortable">
        <!-- BEGIN Portlet PORTLET-->
        <?php
        $lisres = mysql_query("SELECT `cityid`, `name`, `cityodr` FROM `tbl_city`");
        $count = 1;
        while ($resrow = mysql_fetch_array($lisres)) {
            $ctynme = $resrow['name'];
            $ctyid = $resrow['cityid'];
            if ($count < 10) {
                $sp = "0";
            } else {
                $sp = "";
            }
            ?>
            <label class="portlet" id="drag_<?php echo $ctyid; ?>">
                    <?php
                echo $sp;
                echo $count . " " . $ctynme;
                ?>
                </label>
            <?php
            $count = $count + 1;
        }
        ?>
        </div>
    </div>
    <div id="rush">
    </div>

脚本代码:

    $("label").click(function() {
        var sorted = $("label").sortable("serialize", {key: "drag"});
            $.post("scripts/check.php", {dash: sorted}, function(data) {
                var res = data;
                $("#rush").html(res);
            });
    });

【问题讨论】:

  • 您是否在文档就绪功能中初始化了您的可排序?你能设置一个小提琴吗?
  • 没有。我怎么做?一点帮助请。这是我的文档准备功能。 jQuery(document).ready(function() { // 初始化布局和插件 App.setPage('grids'); App.init(); });
  • 你在 App.setPage('grids'); 中有什么应用程序.init();功能?
  • @IrvinDomininakaEdward:3000 行代码。我正在开发响应式模板。 App.js 是来自该模板的具有 setPage 和 init 函数的文件。我发现 setPage 函数是这样的: setPage: function (name) { currentPage = name; },
  • 但是你所有的标签元素都是可排序的吗?在你的脚本中,你附加了 sortable() 什么元素?

标签: javascript jquery ajax jquery-ui


【解决方案1】:

我找到了答案。您不能同时选择子元素作为容器和可排序元素。感谢大家的时间和精力。 这是完整的答案: Nest jQuery UI sortables

【讨论】:

    【解决方案2】:

    试试这个。如果它不起作用,请更新小提琴。

    $( document ).ready(function() {
            $("label").click(function() {
                var sorted = $("label").sortable("serialize", {key: "drag"});
                    $.post("scripts/check.php", {dash: sorted}, function(data) {
                        var res = data;
                        $("#rush").html(res);
                    });
            });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多