如何使用jquery.shapeshift禁用拖放?

时间:2014-02-09 23:24:11

标签: javascript jquery jquery-plugins

我正在使用这个具有拖放功能的插件网格系统: https://github.com/McPants/jquery.shapeshift

您可以调用shapeshift函数并将参数传递给它以启用和禁用拖放功能。

$(".container").shapeshift({
  enableDrag: true,    
});

我希望能够打开和关闭此功能。我用了这段代码:

var dragState = 0;

$(".switch").on("click", function() {

    if(dragState == 0) {
        options = {
          enableDrag: true,
        }
        dragState = 1;
    } else {
        options = {
          enableDrag: false,            
        }
        dragState = 0;
    }

    $(".container").shapeshift(options);
});

当我运行此代码时,我可以打开拖放但不会再次退回。

有没有人对此插件有任何建议或经验?

2 个答案:

答案 0 :(得分:3)

使用http://mcpants.github.io/jquery.shapeshift/作为参考。

基本上你需要做的就是:

$(function(){
    var sso = {
        minColumns: 3,
        enableDrag: false
    };

    var ss = $(".container").shapeshift(sso);
    $('button').click(function () {
        sso.enableDrag = true;
        ss.trigger('ss-destroy');
        ss.shapeshift(sso);

    });
});

我简化了示例,以显示在这个小提琴中需要做什么:

http://jsfiddle.net/carisch19/hDm4e/2/

添加了启用和禁用按钮:

http://jsfiddle.net/carisch19/hDm4e/4/

答案 1 :(得分:0)

很抱歉回答这么老的问题,但我刚刚通过shapeshift.js并明白,为了禁用拖放,我们可以销毁它,但不是很长时间,并且没有必要把它变为变量。

希望您对此简短的方式感兴趣并更新您的代码。

以下是代码

$('div').trigger("ss-destroy");

根据我的说法,上面的代码足以破坏,也是一种非常干净方便的方式。

尝试一次!