Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个可拖放/可拖放元件连接到一个元件_Javascript_Jquery_Jquery Ui_Javascript Events - Fatal编程技术网

Javascript 将多个可拖放/可拖放元件连接到一个元件

Javascript 将多个可拖放/可拖放元件连接到一个元件,javascript,jquery,jquery-ui,javascript-events,Javascript,Jquery,Jquery Ui,Javascript Events,下面显示了我尝试将两个可拖动的停止事件处理程序添加到一个段落中。只有第二个会开火。。。我怎样才能让两者都开火 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script> <script src="http://aj

下面显示了我尝试将两个可拖动的停止事件处理程序添加到一个段落中。只有第二个会开火。。。我怎样才能让两者都开火

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/jquery-ui.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                var dragg1 = {
                    stop: function(event, ui){alert('stop dragg1')}
                };
                var dragg2 = {
                    stop: function(event, ui){alert('stop dragg2')}
                };
                $(".makeDraggable").draggable(dragg1);
                $(".makeDraggable").draggable(dragg2);
            });
        </script>
    </head>
    <body>
        <h1>Multi Handler Test</h1>
        <div class="makeDraggable">Hello</div>
    </body>
</html>

$(文档).ready(函数(){
变量dragg1={
停止:函数(事件,ui){alert('stop dragg1')}
};
变量dragg2={
停止:函数(事件,ui){alert('stop dragg2')}
};
$(“.makeDraggable”).draggable(dragg1);
$(“.makeDraggable”).draggable(dragg2);
});
多处理器测试
你好

我正在尝试创建两个库并将它们堆叠起来,这两个库都向底层元素添加了拖放功能。

您可以添加一种类似于factory的内部函数,如下所示:

$('.makeDraggable')
    .data('draggableStop', (function(){
        var fns = [];
        return {
            add: function(fn){
                fns.push(fn);
            },
            stop: function(event, ui){
                for(var i=0; i<fns.length; i++) {
                    fns[i](event, ui);
                }
            }
        };
    })())
        .draggable({ stop: $('.makeDraggable').data('draggableStop').stop });

$('.makeDraggable').data('draggableStop').add(function(){ alert('1'); });
$('.makeDraggable').data('draggableStop').add(function(){ alert('2'); });
$('.makeDraggable')
.data('draggableStop',(函数(){
var fns=[];
返回{
新增:功能(fn){
推挤(fn);
},
停止:功能(事件、用户界面){

对于(var i=0;它看起来正是我需要堆栈处理程序的东西!