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");
});