内容的栏目 * @param int $category 0列表 1频道 2单页 3外链 * @return array */ function category_list($forumlist, $model = 0, $display = 0, $category = 0) { if (empty($forumlist)) return NULL; static $cache = array(); $key = $model . '-' . $display . '-' . $category; if (isset($cache[$key])) return $cache[$key]; if ($display) { foreach ($forumlist as $k => $val) { if (1 == $val['display'] && 1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } else { foreach ($forumlist as $k => $val) { if (1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } return empty($cache[$key]) ? NULL : $cache[$key]; } /** * @param $forumlist 所有版块列表 不分模型 * @param int $display 0全部CMS栏目 1在首页和频道显示内容的栏目 * @param int $category 0列表 1频道 2单页 3外链 * @return array */ function category_list_show($forumlist, $display = 0, $category = 0) { if (empty($forumlist)) return NULL; static $cache = array(); $key = $display . '-' . $category; if (isset($cache[$key])) return $cache[$key]; if ($display) { foreach ($forumlist as $k => $val) { if (1 == $val['display'] && 1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } else { foreach ($forumlist as $k => $val) { if (1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } return empty($cache[$key]) ? NULL : $cache[$key]; } /** * @param $forumlist 所有版块列表 * @return mixed BBS栏目数据(仅列表) 尚未开放bbs频道功能 */ function forum_list($forumlist) { if (empty($forumlist)) return array(); static $cache = array(); if (isset($cache['bbs_forum_list'])) return $cache['bbs_forum_list']; $cache['bbs_forum_list'] = array(); foreach ($forumlist as $_fid => $_forum) { if ($_forum['type']) continue; $cache['bbs_forum_list'][$_fid] = $_forum; } return $cache['bbs_forum_list']; } // 导航显示的版块 function nav_list($forumlist) { if (empty($forumlist)) return NULL; static $cache = array(); if (isset($cache['nav_list'])) return $cache['nav_list']; foreach ($forumlist as $fid => $forum) { if (0 == $forum['nav_display']) { unset($forumlist[$fid]); } } return $cache['nav_list'] = $forumlist; } ?>javascript - jQuery sortable doesn't work correctly with horizontal list if list is empty before init - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery sortable doesn't work correctly with horizontal list if list is empty before init - Stack Overflow

programmeradmin0浏览0评论

If I add elements to list after I initialize .sortable it doesn't work correctly.

See example jsFiddle

Sample HTML:

<div class="container">
</div>
<br />
<button class="add-fields">add</button>

Sample JS:

$(".container").sortable({
    containment: 'parent'   
});

$(".container").disableSelection();

$(".add-fields").click(function(){
    $(".container").append("<div>sucke</div>")   
})

Sample CSS:

.container {
    height: 30px;
    width: 100%;
    background: blue;
    position: relative;
    float: left;
}
.container > div {
    position: relative;
    float: left;
    height: 100%;
    width: 80px;
    background-color: red;
    line-height: 30px;
    text-align: center;
    margin: 0;
    padding: 0;
    cursor: default;
}

UPDATE

I found related issue here

because this.floating is only determined in _create, if you start with an empty sortable it is assumed to be vertical.

If I add elements to list after I initialize .sortable it doesn't work correctly.

See example jsFiddle

Sample HTML:

<div class="container">
</div>
<br />
<button class="add-fields">add</button>

Sample JS:

$(".container").sortable({
    containment: 'parent'   
});

$(".container").disableSelection();

$(".add-fields").click(function(){
    $(".container").append("<div>sucke</div>")   
})

Sample CSS:

.container {
    height: 30px;
    width: 100%;
    background: blue;
    position: relative;
    float: left;
}
.container > div {
    position: relative;
    float: left;
    height: 100%;
    width: 80px;
    background-color: red;
    line-height: 30px;
    text-align: center;
    margin: 0;
    padding: 0;
    cursor: default;
}

UPDATE

I found related issue here http://bugs.jqueryui./ticket/7498

because this.floating is only determined in _create, if you start with an empty sortable it is assumed to be vertical.

Share Improve this question edited Oct 1, 2013 at 2:30 skmasq asked Oct 1, 2013 at 1:53 skmasqskmasq 4,5217 gold badges44 silver badges77 bronze badges 1
  • Its working fine for me.. I did manually add a <div> with words other than suck. The div's drag and sort fine. Perhaps with all the divs with the same name don't make this obvious? – zipzit Commented Oct 1, 2013 at 2:02
Add a ment  | 

2 Answers 2

Reset to default 6

The workaround for that jQueryUI bug is to initialize the sortable with an element inside, then remove it immediately after initialization.

HTML:

<div class="container"><div id="test">blah</div>
</div>
<br />
<button class="add-fields">add</button>

Javascript:

var i = 0;

$(".container").sortable({
    containment: 'parent'   
});
$(".container").disableSelection();
$("#test").remove();

$(".add-fields").click(function(){
    $(".container").append("<div>sucke" + (i++) + "</div>")   
})

And a jsFiddle showing it working.

Its working fine for me.. Try unique names for the category divs...

$(".container").sortable({
    containment: 'parent'     
});

$(".container").disableSelection();

$(".add-fields").click(function(){
    $(".container").append("<div>sucke"+Math.round(Math.random()* 100)+"</div>")   
})

http://jsfiddle/NQMPr/23/

update.. my bad. in the above example I did have one element inside the container. When I start it from empty, you are right, the div's don't sort. Apologies...

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论