2010-08-06 56 views
1

我試圖修改這個script模擬textarea中的Word 2007迷你吧。我已經將它包裝在一個插件中,問題是它不能用於多個textareas。用textareas創建jQuery插件問題

You can try it out at JSBin
(第一textarea的只要選擇索姆文本,然後點擊 「B」)

有人能幫助我嗎?我有點失落。


更新

應該提到,它顯示正確的預覽,但它在textarea的加雙標籤。它不適用於Firefox或IE。爲什麼?

這是非常hackish,所以我希望有人告訴我如何做到這一點。



它僅適用於Chrome工作,截至目前

+0

什麼不工作?如果我在第一個或第二個文本區域中單擊以使粗體顯示,它將顯示在預覽中。此時期望的行爲是什麼? – 2010-08-06 11:56:55

+0

查看更新的問題 – 2010-08-06 12:15:33

回答

3

首先,我們要解決的雙標籤的問題,他們發生,因爲這些處理器的:

$("#bold").click(function() { ... }); 
$("#italic").click(function() { ... }); 
$("#underline").click(function() { ... }); 
$("#link").click(function() { ... }); 

他們正在綁定裏面您的.each()循環,意思是一個處理程序正在綁定您正在運行您的代碼的每個元素,創建n手在.each()循環之外移動這些處理程序(並確保它們是.unbind()或使用.live(),以防萬一插件也運行多次)。

雖然我們在這,但我們應該將$(document).mousedown(function() { ... });也移出該循環,同樣的問題是不想多次綁定它。

你的IE/Firefox問題主要是這個例子是如何在JSBin上設置的結果(jQuery沒有被定義,因爲包含),而不是實際的插件問題。然而,因爲.select()可以跨瀏覽器使用,我認爲你可以消除$.browser.msie子句,至少在IE8中不需要,但是如果你想支持它們,一定要測試舊版本。

只有以上更改和一些代碼格式改進(例如.css()可以採用對象),I've setup your code for testing here