ExtJS + JQuery / Flot: событие mousedown для контейнера сюжета - PullRequest
1 голос
/ 21 апреля 2011

Я понял, что во флоте существует конфликт между событием plotplan и событием mousedown.если активировать сюжет, то mousedown не будет работать в области сюжета;Кроме того, если отключить событие «plotpan», но включить события «plotclick» и «mousedown», то оказывается, что работает только mousedown, а plotclick - нет.Как я могу убедиться, что эти три или более события могут работать более подходящим образом?демо-коды прикреплены следующим образом:

<html>
<head>

<title>A Test Page</title>
<!-- JQUERY/FLOT LIB FILES -->
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="lib/jquery/excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript"
    src="lib/jquery/jquery.js"></script>
<script language="javascript" type="text/javascript"
    src="lib/jquery/jquery.flot.js"></script>
<script language="javascript" type="text/javascript"
    src="lib/jquery/jquery.flot.navigate.js"></script>
<script language="javascript" type="text/javascript"
    src="lib/jquery/jquery.flot.symbol.js"></script>

<script type="text/javascript">

$(function () {

        // raw data
        d1 = [ [ 0, 2 ], [ 1, 2 ] ];
        d2 = [ [ 2, 2 ], [ 4, 2 ] ];


        //event data
        dataSeries = [{
            color : "rgb(0, 0, 0)",
            data : d1,

            label : "point1",
            points : {
                show : true,
                symbol : "square",
                radius : 4
            }

        }, {
            color : "rgb(255, 100, 123)",
            data : d2,

            label : "point2",
            points : {
                show : true,
                radius : 4
            }
        }];

        //container for graph
        var placeholder = $("#flotDiv");

        if (placeholder.length <= 0) {
            return;
        }

        options= {//graph options

                pan : {
                    interactive : true
                },

                grid: {
                    clickable:true
                }
            };

        $.plot(placeholder, dataSeries, options);

        placeholder.bind("mousedown",function(e){
            alert("mousedown");
        })

        /*
        placeholder.bind("plotclick",function(event, pos, item){
            alert("plotclick");
        });
        */
    });
</script>
</head>
<body>
    <!-- SLD PLOT -->
    <div id="flotDiv" style="width: 600px; height: 300px; padding: 0px; position: relative;"></div>
</body>
</html>

в вышеприведенных кодах событие mousedown не работает, потому что я включаю сюжет, панорамируемый;если я отключу plotpan, тогда будет работать mousedown;и если я включаю plotclick, все еще работает только mousedown;я знаю, что plotpan и plotclick имеют отношение к событию "mousedown", поэтому существует конфликт между ними.однако мне нужно найти способ заставить их работать вместе.

благодарен за любые комментарии!

1 Ответ

1 голос
/ 04 ноября 2013

Плагин jquery.flot.navigate.js, используемый для масштабирования и панорамирования стороннего плагина jquery.event.drag.js, который будет отменять распространение mousedown.Решением может быть возвращение true внутри хадлера событий mousedown, чтобы разрешить всплывающее событие мыши вниз.

...