我正在尝试使用 Javascript 和 jQuery 构建便笺。我遇到的问题是,draggable()
不能deleteNote()
在新附加的元素上调用函数。我怎样才能解决这个问题?
编辑: ID 实际上应该得到一个附加的数字,我不知道如何实现,因为我不知道如何创建一个计数器。例如newbox1
我在 jsfiddle 上的代码:http: //jsfiddle.net/wowpatrick/qexRS/4/
我正在尝试使用 Javascript 和 jQuery 构建便笺。我遇到的问题是,draggable()
不能deleteNote()
在新附加的元素上调用函数。我怎样才能解决这个问题?
编辑: ID 实际上应该得到一个附加的数字,我不知道如何实现,因为我不知道如何创建一个计数器。例如newbox1
我在 jsfiddle 上的代码:http: //jsfiddle.net/wowpatrick/qexRS/4/
您可以.click
在创建新元素后将处理程序添加到它。
您不应该创建具有相同 ID 的多个元素,而是使用类。
此外,您可以立即将 附加.draggable()
到创建的元素而不是定位$('#newbox')
。
这是一个效果更好的叉子:http: //jsfiddle.net/YvtLb/
关键在这里:
var postit = $('<div class="ui-widget-content newbox" style="top:' + e.pageY + 'px; left: ' + e.pageX + 'px;"><span id="close">Delete comment</span><p>Your comment:</p><textarea></textarea></div>').draggable();
$('#canvas').append(postit);
这是因为页面加载#newbox
不存在。更好的方法是将新元素存储在变量中,附加它,然后应用draggable
,试试这个:
// Create the new comment at the corsor postition
var $newbox = $('<div class="ui-widget-content" id="newbox" style="top:' + e.pageY + 'px; left: ' + e.pageX + 'px;"><span id="close">Delete comment</span><p>Your comment:</p><textarea></textarea></div>');
$('#canvas').append($newbox);
$newbox.draggable();