jQuery("body").dblclick(function(event){
var x = event.pageX - this.offsetLeft;
var y = event.pageY - this.offsetTop;
jQuery("<div></div>").addClass("node").css("position","absolute")
.css("top",x).css("left",y).bind("click",showOptions).appendTo("body");
var showOptions = function()
{
alert("santa clara");
}
});
我有两个问题,一个是我无法正确使用mousePositions。另一个是我希望在点击没有发生的动态创建的div时调用函数showOptions。
答案 0 :(得分:2)
showOptions
$('body').click(function (event)
{
var x = event.pageX - this.offsetLeft,
y = event.pageY - this.offsetTop;
function showOptions()
{
alert('santa clara');
}
$('<div/>',
{
'class': 'node',
css: {
position: 'absolute',
top: x,
left: y
},
click: showOptions
}).appendTo(this);
});
答案 1 :(得分:1)
var x = event.pageX - this.offsetLeft;
var y = event.pageY - this.offsetTop;
document.body
没有offsetLeft
和offsetTop
,因为它是页面本身 - 它从(0, 0)
开始。你不是只想要event.pageX
和Y
吗?这也与position: absolute
像素相对应。
其次,您在之后定义showOptions
函数,并将其分配给.bind
。所以它不可用尚未。
我还添加了一些技巧,以便代码更具可读性:
jQuery("body").dblclick(function(event){
var showOptions = function()
{
alert("santa clara");
};
var x = event.pageX,
y = event.pageY;
jQuery("<div>").addClass("node")
.css({position: "absolute",
left: x,
top: y })
.click(showOptions)
.appendTo("body");
});