我正在尝试修改模拟文本区域中Word 2007迷你吧的script。我把它包装在一个插件中,问题是它不适用于多个textareas。
You can try it out at JSBin
(只需在第一个textarea中选择som文本,然后点击“b”)
有人能帮助我吗?我有点失落。
更新
应该提到它在预览中正确显示,但它在textarea中添加了双标签。它在Firefox或IE中不起作用。为什么呢?
这是非常hackish,所以我希望有人告诉我如何做对。
目前仅适用于Chrome
答案 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中不需要它,但如果你想支持它们,一定要测试旧版本。