$('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