本帖最后由 dexteryao 于 2017-3-28 13:47 编辑
您的代码我没有直接跑起来,我修改下运行了。通过您的代码,看您是想通过鼠标拖动赋值。
由于dragover这个事件只要鼠标有移动都会触发,所以从性能角度您需要控制setValue的时机,放置页面频繁重绘造成的卡顿。
不太清楚您为什么用tipchelltype。可以直接用hitTest获取到当前鼠标所在的单元格。如果要加tip,也可以直接加不需要celltype。
下面是我的代码。
另外如果不同的问题请重新发帖,这样方便记录跟踪。
- var activeSheet = spread.getActiveSheet();
- var drop = document.getElementById("ssvp_vp");
- var count = 0, item = "item";
- drop.addEventListener("dragenter", function (e) {
- count = 0;
- var data = e.dataTransfer.getData("Text");
- //item = $("#" + data).text();
- });
- drop.addEventListener("dragleave", function (e) {
- });
- drop.addEventListener("dragover", function (e) {
- e.preventDefault();
- if (count++ % 50 !== 0) {
- return;
- }
- var hitinfo = activeSheet.hitTest(e.clientX, e.clientY);
- if (hitinfo.hitTestType === GC.Spread.Sheets.SheetArea.viewport) {
- activeSheet.setValue(hitinfo.row, hitinfo.col, item);
- }
- });
复制代码
|