Android jsPlumb touch事件在web浏览器上工作,但在平板电脑浏览器上不工作

Android jsPlumb touch事件在web浏览器上工作,但在平板电脑浏览器上不工作,android,jquery,jsplumb,Android,Jquery,Jsplumb,我使用jsplumb匹配了columns模板,我在其中使用了拖放功能。在web浏览器上一切都正常。但当我在平板电脑浏览器上运行同样的程序时,它就不起作用了。我阅读了他们建议使用touchpunch的论坛。我也用过。但当我点击圆圈与另一列相匹配时,它不会移动。请指出错误在哪里。 我使用的代码段是: main.js function display() { var questiontxt = xmlDoc.getElementsByTagName("quest

我使用jsplumb匹配了columns模板,我在其中使用了拖放功能。在web浏览器上一切都正常。但当我在平板电脑浏览器上运行同样的程序时,它就不起作用了。我阅读了他们建议使用touchpunch的论坛。我也用过。但当我点击圆圈与另一列相匹配时,它不会移动。请指出错误在哪里。 我使用的代码段是:

main.js

function display()
{                
    var questiontxt = xmlDoc.getElementsByTagName("questionTxt")[0].childNodes[0].nodeValue;

    $("#topmain").html(questiontxt);

    fitemid= x[0].getElementsByTagName("item").length;
    ftargetid= x[0].getElementsByTagName("target").length;
    $("#listitem").append('<table cellspacing="5" cellpadding="8" style="width: 95%; " id="list"></table>');
    connections = [];

    jsPlumb.importDefaults({
        ConnectionsDetachable:true,
        ReattachConnections:true
    });

    updateConnections = function(conn, remove) {
        connections.push(conn);
        hideConnectionInfo(connections[0].sourceId);
    };

    window.jsPlumbDemo = {
        init : function() {
            var exampleDropOptions = {
                tolerance:"touch",
                hoverClass:"dropHover",
                activeClass:"dragActive"
            };

            var color2 = "#FFF";
            var color3 = "#09F";
            var exampleEndpoint2 = {
                tolerance:"touch",
                hoverClass:"dropHover",
                activeClass:"dragActive",
                endpoint:["Dot", { radius:15 }],
                paintStyle:{ fillStyle:color3 },
                isSource:true,
                scope:"green dot",
                connectorStyle:{ strokeStyle:color3, lineWidth:2 },
                maxConnections:1,
                connector: "Straight",
                isTarget:false
            };

            var exampleEndpoint3 = {
                endpoint:["Dot", { radius:15}],
                paintStyle:{ fillStyle:color3 },
                isSource:false,
                scope:"green dot",
                connectorStyle:{ strokeStyle:color3, lineWidth:2 },
                maxConnections:1,
                connector: "Straight",
                isTarget:true,
                beforeDrop:function(params) { 
                    var v=(params.sourceId).substring(6,(params.sourceId).length);
                    var w=(params.targetId).substring(12,(params.targetId).length);

                    if(v == w){
                        document.getElementById('ans'+w).innerHTML+="<img src='img/correct.png'>";
                        count++;
                        c = xmlDoc.getElementsByTagName("item").length;

                        if(count == c){
                            feedback();
                            alert(window.parent)
                            window.parent.updateResult(100)
                        }
                        return confirm(); 
                        dropOptions : exampleDropOptions    

                    }
                }
            };

            jsPlumb.bind("connection", function(info, originalEvent) {
                updateConnections(info.connection);
            });

            jsPlumb.bind("connectionDetached", function(info, originalEvent) {
                updateConnections(info.connection, true);
            });

            function Shuffle(o) {
                for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
                    return o;
                };

            var testArray = new Array();
            var testArray1 = new Array();

            for(i=0 ; i< fitemid ;i++){
                testArray.push(i);
            }
            Shuffle(testArray);

            for(i=0 ; i< fitemid ;i++){
                testArray1.push(i);
            }
            Shuffle(testArray1);

            for(i=0 ; i< fitemid ;i++)
            {
                fitem[i] = x[0].getElementsByTagName("item")[testArray1[i]].childNodes[0].nodeValue;
                ftarget[i] = x[0].getElementsByTagName("target")[testArray[i]].childNodes[0].nodeValue;

                j = x[0].getElementsByTagName("item")[testArray1[i]].getAttribute("target");
                l = x[0].getElementsByTagName("target")[testArray[i]].getAttribute("id");

                $("#list").append("<tr style='width:100%;'><td id=\"circle"+j+"\" class='circle ,\"circle"+j+"\' style='width:65%; vertical-align: top; border:1px #999 solid; float:left; border-radius:4px;'>"+fitem[i]+"</td> <td id=\"circletarget"+l+"\" class='circletarget,\"circle"+j+"\' style='vertical-align: top; width:59%; border:1px #999 solid; border-radius:4px;'>"+ftarget[i]+"</td><td class='circletarget,\"circle"+j+"\' style='vertical-align: top; width:5%;'><div id=\"ans"+l+"\" class='ans'></td></tr>");

                var e1 = jsPlumb.addEndpoint("circle"+j, { anchor:[1, 0.5, 1, 1 ] }, exampleEndpoint2);
                var e2 = jsPlumb.addEndpoint("circletarget"+l, { anchor:[ 0, 0.5, 1, 1 ] }, exampleEndpoint3);

                jsPlumb.draggable($("#circle"+j,"#circletarget"+l));
            }   
        }       
    };  
    jsPlumbDemo.init(); 
} 
函数显示()
{                
var questiontxt=xmlDoc.getElementsByTagName(“questiontxt”)[0]。子节点[0]。节点值;
$(“#topmain”).html(questiontxt);
fitemid=x[0]。getElementsByTagName(“项”)。长度;
ftargetid=x[0].getElementsByTagName(“目标”).length;
$(“#列表项”)。附加(“”);
连接=[];
jsPlumb.importDefaults({
ConnectionsDetaccable:true,
重新连接:true
});
updateConnections=函数(连接,删除){
连接。推动(连接);
hideConnectionInfo(连接[0].sourceId);
};
window.jsdemo={
init:function(){
var exampleDropOptions={
宽容:“触摸”,
hoverClass:“dropHover”,
activeClass:“dragActive”
};
var color2=“#FFF”;
var color3=“#09F”;
变量exampleEndpoint2={
宽容:“触摸”,
hoverClass:“dropHover”,
activeClass:“dragActive”,
端点:[“点”{radius:15}],
paintStyle:{fillStyle:color3},
来源:是的,
经营范围:“绿点”,
连接器样式:{strokeStyle:color3,线宽:2},
maxConnections:1,
连接器:“直”,
isTarget:错误
};
变量exampleEndpoint3={
端点:[“点”{radius:15}],
paintStyle:{fillStyle:color3},
来源:错,
经营范围:“绿点”,
连接器样式:{strokeStyle:color3,线宽:2},
maxConnections:1,
连接器:“直”,
isTarget:没错,
beforeDrop:函数(参数){
var v=(params.sourceId).substring(6,(params.sourceId).length);
var w=(params.targetId).substring(12,(params.targetId).length);
如果(v==w){
document.getElementById('ans'+w).innerHTML+=“”;
计数++;
c=xmlDoc.getElementsByTagName(“项”).length;
如果(计数=c){
反馈();
警报(window.parent)
window.parent.updateResult(100)
}
返回确认();
dropOptions:exampleDropOptions
}
}
};
jsPlumb.bind(“连接”,函数(info,originalEvent){
更新连接(信息连接);
});
jsPlumb.bind(“connectionAttached”,函数(info,originalEvent){
updateConnections(info.connection,true);
});
函数洗牌(o){
对于(var j,x,i=o.length;i;j=parseInt(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);
返回o;
};
var testArray=新数组();
var testArray1=新数组();
对于(i=0;i
index.html

<html>
<head>
<script src="js/lib/jquery.min.js"></script>

        <script type="text/javascript" src="js/lib/jquery-ui.min.js"></script>
                 <script type="text/javascript" src="js/lib/jquery-1.8.1-min.js"></script>
        <script type="text/javascript" src="js/lib/jquery-ui-1.8.23-min.js"></script>

        <script src="js/lib/jquery.ui.touch-punch.js" ></script>

        <script src="js/lib/jsBezier-0.5.js"></script>      
        <!-- jsplumb util -->
        <script src="js/1.4.0/jsPlumb-util-1.4.0-RC1.js"></script>
        <!-- base DOM adapter -->
        <script src="js/1.4.0/jsPlumb-dom-adapter-1.4.0-RC1.js"></script>
        <!-- jsplumb drag-->
        <!--<script src="js/1.4.0/jsPlumb-drag-1.4.0-RC1.js"></script>-->
        <!-- main jsplumb engine -->
        <script src="js/1.4.0/jsPlumb-1.4.0-RC1.js"></script>
        <!-- connectors, endpoint and overlays  -->
        <script src="js/1.4.0/jsPlumb-defaults-1.4.0-RC1.js"></script>
        <!-- SVG renderer -->
        <script src="js/1.4.0/jsPlumb-renderers-svg-1.4.0-RC1.js"></script>
        <!-- canvas renderer -->
        <script src="js/1.4.0/jsPlumb-renderers-canvas-1.4.0-RC1.js"></script>
        <!-- vml renderer -->
        <script src="js/1.4.0/jsPlumb-renderers-vml-1.4.0-RC1.js"></script>

        <!-- jquery jsPlumb adapter -->
        <script src="js/1.4.0/jquery.jsPlumb-1.4.0-RC1.js"></script>

</head>

    <body>

 <div id="content" class="content">         

                <div id="topmain"></div>
                <div id="listitem"></div>
            </div>

 </body>

    <script src="js/main.js"></script>



</html>

jsplump创建了一个SVG,它可以停留在连接的元素上,防止点击触发SVG下元素上的事件

您可以通过在jsPlumb创建的所有SVG上附加一个click事件来测试它,并检查您的click触发该事件

对我来说,解决方案是将SVG下元素的z索引更改为大于jsPlumb实例中设置的z索引的z索引

顺便说一句,您可以通过以下方式控制连接器的z索引:

jsPlumb.importDefaults({ConnectorZIndex:number})//数字是z索引