2011-07-20 47 views
0

我不知道發生了什麼事。該鏈接就不會顯示出來:jQuery + .before()+ var =不工作?

var se_buttons = { 
    'b': { 
     'tag' : 'b' 
    }, 
    'i': { 
     'tag' : 'i' 
    }, 
    'url': { 
     'tag' : 'url' 
    }, 
    'size': { 
     'tag' : 'size' 
    }, 
    'spoiler': { 
     'tag' : 'spoiler' 
    }, 
    'align': { 
     'tag' : 'align' 
    } 
}; 

function se_make_button(button, text) { 
    return '<a href="#" class="button se_button se_button_'+button+'">'+text+'</a>'; 
} 

function se_create (obj, toolbar) { 
    var se_toolbar = ''; 
    for (var button in se_buttons) { 
     se_toolbar = se_toolbar + se_make_button(se_buttons[button].tag, se_buttons[button].tag); 
    } 
    $(obj).before(se_toolbar); 
} 

toolbar是具有屬性的簡單對象。當單獨提醒每件事情時,它們都可以正常工作,並且所有信息都能正確顯示。當從控制檯執行相同的.before()命令時,它也可以工作。但在代碼中 - 它不是!我能做些什麼? :/ 我花了大約2個小時試圖解決這個問題,但我無法弄清楚發生了什麼事> <我也試過.replaceWith()或其他類似的東西,但它只是在內部代碼中不起作用。明確從控制檯作品雖然d手動運行代碼:


編輯:奇怪的是,如果我把一個警報,確切的變量before()部分內,該字符串是好的。如果我以任何其他方式操作$(obj),它就會起作用。變量和對象的結合不想小提琴。

+0

請製作一個測試用具。我們看不到'se_buttons',或者你調用'se_create'。 –

+0

新增se_buttons - 這是一個簡單的對象,我知道它出現我建立它無用,但我打算添加更多的屬性,這是一個佔位符 – casraf

回答

0

不知道發生了什麼,但它現在就起作用了。我想我明確地要求準備好文檔,而不是僅僅將它用作藍色電話。

0

我把你的代碼照原樣,並設法運行良好。在IE 7,8,9和FF中。 你可以在這裏看看。 http://jsfiddle.net/87UUD/7/

你的html看起來像什麼?你如何調用se_create方法?

+0

這應該是一個評論。 –