【问题标题】:JQueryUI sortable only works onceJQueryUI sortable 只能工作一次
【发布时间】:2013-10-21 21:22:15
【问题描述】:

我在页眉中调用 JQueryUI.js,然后使用 AJAX 加载内容。

Jquery 拖放工作一次然后退出工作。如果我使用 JqueryUI.js 加载每个 AJAX 内容,它就可以工作,但这非常慢。这是在 YII 框架中

所以整个事情看起来像:

页面.php:

$cs->registerScriptFile($baseUrl . '/js/jquery.ui.js');
$cs->registerScriptFile($baseUrl . '/js/product.js');

product.js:

// need to namespace this to get access to jquery.ui.js sortable function
(function($) {
    SORTABLE = {
      mySortable: function(inputId) {
        $('#sortable-list-left').sortable();
        $('#sortable-list-right').sortable();
      }
     };
}(jQuery));

$(document)
  .ready(function() {
      function loadRecord(id, sku) {
      $.ajax({
        data: "id=" + id + "&sku=" + sku + "&project_id=" + urlParam("project"),
        url: "/product/ajaxGetRecord",
        type: "POST",
        success: function(response) {
          // process JSON response
          var obj = jQuery.parseJSON(response);
          // update the html with the new info
          $("#productForm")
            .html(obj.form);
          (function() {
            SORTABLE.mySortable(urlParam("project"));
          })();
        }
      });
   });

_pagePartial.php:

 <div id="productForm">  
    // dynamic content filled in here
 </div> 

这种命名空间策略适用于我所有的其他 JS,但不适用于 Jquery.ui.js ...它应用了 sortable 方法,我可以拖放一次,但它不再起作用。

不理想的工作选项是:

_pagePartial.php:

   // called every single ajax update ... ugh! 
   $cs->registerScriptFile($baseUrl . '/js/jquery.ui.js');
   $('#sortable-list-left').sortable();
   $('#sortable-list-right').sortable();

【问题讨论】:

    标签: javascript php jquery jquery-ui yii


    【解决方案1】:

    如果你不移除列表持有者(例如 ul),并且你在其中有动态的 li 内容,你将不必在 ajax 调用后重新绑定sortable()。否则,你用新的 HTML 内容替换你的列表,你必须这样做。 这是David Hoerster 的示例

    Example sortable with ajax

    【讨论】:

    • #sortable-list-left , #sortable-list-right 是由ajax调用生成的,所以我确实需要重新绑定。不知道发生了什么。
    • "#sortable-list-left , #sortable-list-right 由 ajax 调用生成" - 这意味着它们是添加的新 DOM,如果您正在寻找它背后的实际答案,参考stackoverflow.com/questions/16062899/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 2011-03-07
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多