我有一个 Canvas ,里面有对象,并且有一个对象的事件处理程序:selected。当我选择对象时,div (vtover) 会出现在 pageX 和 pageY 旁边的鼠标/触摸指针处。
我想要完成的是使用 jQuery Mobile 将事件处理程序从单击更改为触摸 Taphold。我尝试将所有代码放入我的水龙头中,但这不起作用。
我该如何解决这个问题?
chartdiv 是我的 Canvas 容器的 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) + " %");
});
最佳答案
你不能那样做,至少不能那样做,这应该可行:
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) + " %");
});
关于javascript - 如何在其他函数中访问jquery taphold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23711310/