$('div#Settings ul li').click(function() {
var url, template;
var self = $(this);
if (!$(self).hasClass('selected')) {
var ContextMenu = CreateContext($(self));
var id = $(self).attr('id');
function CreateContext(item) {
var ContextMenu = $('div#ContextMenu');
if (!$(ContextMenu).length) {
$('<div id="ContextMenu"></div>').appendTo('body');
CreateContext(item);
}
$(ContextMenu).slideUp(150, 'swing', function() {
$(ContextMenu).insertAfter(item);
});
$(item).addClass('selected').siblings().removeClass('selected');
return $(ContextMenu);
}
在第一次调用CreateContext(item)
我不能在.click
代码中使用的变量ContextMenu
以后。但是,如果CreateContext被调用两次,一切正常。当我第一次遇到一个未定义的变量时,我就是console.log(ContextMenu)
。第二次正确获取对象。我怎样才能解决这个问题?谢谢。
但我创建并追加到身体上的第一个电话...... – user1027620 2012-01-14 00:34:18
请不要介意。工作很好,谢谢:) – user1027620 2012-01-14 00:39:17
@ user1027620 - 您正在创建并追加它,但创建后并没有设置局部变量'ContextMenu'的值,因此剩下的代码无法使用刚才创建的那个。请注意,我建议的代码在创建时如何设置“ContextMenu”的值。 – jfriend00 2012-01-14 00:40:25