【问题标题】:How to access jquery taphold inside other function如何在其他功能中访问jquery taphold
【发布时间】:2014-05-17 12:25:47
【问题描述】:

我有一个里面有对象的画布,并且有一个 object:selected 的事件处理程序。当我选择对象时,一个 div (vtover) 出现在 pageX 和 pageY 的鼠标/触摸指针上。

我想要完成的是使用 jQuery Mobile 将事件处理程序从点击更改为触摸点击。我试图将所有代码都放在我的水龙头里,但是没有用。

我该如何解决这个问题?

chartdiv 是我的画布容器的 id

代码

canvas.observe("object:selected", function (e) {
    $("#chartdiv").on("taphold", function (a) {
       // tried to put below code inside this, but this didnt work out.
    });
    var obj = e.target;
    $("#vtover").show();
    $("#vtover").offset({
        left: event.pageX,
        top: event.pageY - 200
    });
    $("#vt_vol").val(myvol.toLocaleString("de-DE") + " " + unit);
    $("#vt_period").val(myper + " Tage");
    $("#vt_sump").val(sumper.toLocaleString("de-DE") + " " + unit);
    $("#vt_diffp").val(Math.round((myvol * myper / sumper) * 100) + " %");
});

【问题讨论】:

    标签: javascript jquery-mobile canvas touch


    【解决方案1】:

    你不能那样做,至少不能那样做,这应该可以:

    var canvasHandler  = {
        obj : null
    }
    
    canvas.observe("object:selected", function (e) {
        canvasHandler.obj = e.target;
    });
    
    $(document).on("taphold", "#chartdiv",function (a) {
    
        // Now if you need selected canvas just use canvasHandler.obj
    
        $("#vtover").show();
        $("#vtover").offset({
            left: event.pageX,
            top: event.pageY - 200
        });
        $("#vt_vol").val(myvol.toLocaleString("de-DE") + " " + unit);
        $("#vt_period").val(myper + " Tage");
        $("#vt_sump").val(sumper.toLocaleString("de-DE") + " " + unit);
        $("#vt_diffp").val(Math.round((myvol * myper / sumper) * 100) + " %");
    });
    

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 2011-10-20
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多