【发布时间】:2014-09-09 21:57:08
【问题描述】:
我一直在将 ZeroClipboard 实现到应用程序中,但在注册鼠标事件时遇到了困难。详情如下:
- ZeroClipboard 版本:2.1.6 (https://github.com/zeroclipboard/zeroclipboard)
- jQuery 版本:2.1.1
- 主干版本:1.1.2
- 下划线版本:1.6.0
我已经在 Backbone 视图中使用 CoffeeScript 实现了这一点,如下所示:
initialize: ->
# ZeroClipboard Setup
client = new ZeroClipboard(@$el)
# Ready
client.on "ready", (event) ->
console.log('ZeroClipboard Ready.')
# Before Copy
client.on "beforecopy", (event) ->
console.log('Before Copy')
# Copy-To-Clipboard Action
client.on "copy", (event) ->
console.log('Copied')
clipboard = event.clipboardData
clipboard.setData "text/plain", value
# After Copy Action
client.on "aftercopy", (event) =>
console.log('AfterCopy')
@showTooltip()
以上所有代码都有效。已成功找到 SWF 文件,ready、beforecopy、copy 和 aftercopy 事件运行良好。我看到了所有预期的控制台日志记录。
然而 - 当我尝试实现支持的鼠标交互事件时,我一无所获。我尝试了以下方法但没有成功:
client.on "mouseenter", (event) ->
console.log('MouseOver')
# # # # # # # # # #
client.on "mouseover", (event) ->
console.log('MouseOver')
# # # # # # # # # #
client.on "mousedown", (event) ->
console.log('MouseOver')
我无法从任何这些事件中获得尽可能多的 console.log。没有其他 JS 错误,而且从各个方面来看,ZeroClipboard 运行良好。
我没有成功尝试像这样添加事件侦听器:
client.addEventListener "mouseover", (event) =>
console.log('HoverState')
它似乎不会工作,因为客户端是 ZeroClipboard 对象,而“addEventListener”不是其类的成员函数。
我确实冒险进入 ZeroClipboard.js 文件,并在应该触发 mouseover 事件的地方添加了一些 console.log() 语句,并且它们成功输出。因此,我可以(大部分)排除它是 ZeroClipboard 事件实现中的一个问题,并得出结论认为这几乎肯定是我的代码有问题,尽管在花了下午的大部分时间进行调查之后,我空手而归,找到了一个可行的解决方案.
如果有人可以帮忙,我将不胜感激 - 提前致谢!
【问题讨论】:
标签: jquery flash backbone.js underscore.js zeroclipboard