【发布时间】:2012-03-23 22:14:50
【问题描述】:
以前从来没有遇到过这种情况,谁能给我任何指点?
我正在创建一个 web 应用程序来做笔记,比如将笔记贴到白板上。目前,生成按钮会生成笔记,但我想这样做,以便用户可以单击画布(白板)上的任何位置,它会在该位置生成一个新笔记。
下面是代码:-
$("#canvas").bind('click', function(e){
// Calculate offset for width, put box to the left top corner of the mouse click.
var x = e.pageX + "px";
var y = e.pageY + "px";
$("#note").clone().insertBefore("#insertAfter").attr("id", "note" + noteID).show();
$("#note" + noteID).children(".title").text("Note " + noteID);
$("#note" + noteID).css({left:x, top:y, "z-index" : zindex});
noteID++;
zindex++;
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
});
当用户单击其中一个便笺时会出现问题,因为每次用户单击便笺时便将便笺克隆到画布中,从而创建了另一个便笺。我想停止这种行为,并且仅在用户单击空白画布区域时创建注释。我已经尝试过 preventDefauly、stopPropagation 和 stopImmediate ......但它们似乎都没有任何影响。
我也尝试过其他操作,例如点击笔记,但似乎无法在正确的位置找到正确的操作?还是我完全走错了路?
这里的例子:
http://www.kryptonite-dove.com/sandbox/animate
更新:
$('#canvas').on('click', '.note', function(e) {
e.stopPropagation();
});
这解决了笔记冒泡的问题,但是它现在阻止了笔记类上的任何点击操作,我在这里处于未知领域!将不胜感激有关如何使单击操作恢复为注释标题和文本工作的任何指示:)
【问题讨论】:
标签: jquery jquery-ui user-interface stoppropagation