首先,我们要解决的双标签的问题,他们发生,因为这些处理器的:
$("#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。
什么不工作?如果我在第一个或第二个文本区域中单击以使粗体显示,它将显示在预览中。此时期望的行为是什么? – 2010-08-06 11:56:55
查看更新的问题 – 2010-08-06 12:15:33