用textareas创建jQuery插件的问题

时间:2010-08-06 11:48:27

标签: javascript jquery-plugins textarea jquery

我正在尝试修改模拟文本区域中Word 2007迷你吧的script。我把它包装在一个插件中,问题是它不适用于多个textareas。

You can try it out at JSBin
(只需在第一个textarea中选择som文本,然后点击“b”)

有人能帮助我吗?我有点失落。


更新

应该提到它在预览中正确显示,但它在textarea中添加了双标签。它在Firefox或IE中不起作用。为什么呢?

这是非常hackish,所以我希望有人告诉我如何做对。



目前仅适用于Chrome

1 个答案:

答案 0 :(得分:3)

首先我们将解决双标签问题,因为这些处理程序会发生:

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

他们在<{3}}循环中绑定 ,这意味着正在为您运行代码的每个元素绑定一个处理程序,为其创建n个处理程序相同的#bold元素,只需将这些处理程序移到.each()循环之外(并确保.each()它们或使用.unbind(),以防插件运行多次)。

虽然我们正在努力,但我们也应该将$(document).mousedown(function() { ... });移出该循环,同样的问题是不想多次绑定它。

你的IE / Firefox问题主要是在JSBin上设置示例的结果(由于包含而没有定义jQuery),而不是插件的实际代码问题。但是,由于.live()可以跨浏览器使用,我认为你可以删除$.browser.msie子句,至少在IE8中不需要它,但如果你想支持它们,一定要测试旧版本。

只有上面的更改和一些代码格式改进(.select()可以采用对象),.css()