Javascript jQuery插件自定义事件触发器未触发

Javascript jQuery插件自定义事件触发器未触发,javascript,jquery,events,jquery-plugins,dom-events,Javascript,Jquery,Events,Jquery Plugins,Dom Events,我已经有一段时间没有开发jQuery插件了,我正在开发一个包含选项和内部事件的非常常见的样板文件。在其中一个内部方法中,我需要触发一个自定义事件,以便其他页面可以捕获该事件并使用它。更具体地说,在这个用法中,在canvas元素上绘制结束时,我希望能够捕获插件外部的事件,以便获取canvas内容,以便将插件本身不可知的内容发送到其他地方 但是,trigger调用似乎既没有触发,也没有从另一个页面查找绑定事件。Firebug中没有显示任何控制台消息 以下是我的示例插件(简化): 然后从文档中的一个单

我已经有一段时间没有开发jQuery插件了,我正在开发一个包含选项和内部事件的非常常见的样板文件。在其中一个内部方法中,我需要触发一个自定义事件,以便其他页面可以捕获该事件并使用它。更具体地说,在这个用法中,在
canvas
元素上绘制结束时,我希望能够捕获插件外部的事件,以便获取
canvas
内容,以便将插件本身不可知的内容发送到其他地方

但是,
trigger
调用似乎既没有触发,也没有从另一个页面查找绑定事件。Firebug中没有显示任何控制台消息

以下是我的示例插件(简化):

然后从
文档中的一个单独页面。就绪
事件被绑定:

$(".myPluginInstances").myPlugin().on("mydrawevent", function (e, data) {
    console.log("mydrawevent");
    console.log(data);
});
从Firebug中,我看到
imgElement
确实绑定了侦听器:

mydrawevent
    -> function(a)
        -> function(e, data)

我尝试过很多事情,比如在不同的DOM元素上调用
触发器
,在数组中传入和传出事件参数数据,定义一个回调方法(它有自己的问题),等等。我有一种感觉,这个问题就在我面前,很愚蠢,但我可以用更多的眼睛来仔细检查我的理智。

作为我对上面Vikk的回应的进一步解释,这个问题确实是界定和理解哪些对象绑定到插件的哪些部分。在我的例子中,作为私有事件处理程序的内部方法被绑定到我的
canvas
元素,但是插件本身被实例化在
img
元素上,这至少是这个特定实现的临时要求


基于此,在内部事件处理程序中使用
$(this)
意味着它试图在我的
画布上使用
trigger
元素,而不是
img
元素,后者从插件外部连接了
mydrawevent
监听器。

乍一看,inputEnd中的“this”似乎是指inputEnd而不是plugin-JS不是函数范围块作用域。它看起来好像不使用“this”就可以访问。你能不能不试试
$(inputElement)
?好主意,我尝试了一大堆不同的元素作为触发器,但显然忽略了这样一个事实,即inputEnd绑定到
画布
,但事件本身正在侦听
img
。在这种情况下,
$(imgElement)
什么都不是,
$(this)
画布
,而
$(this)。prev()
是实际的
img
,它绑定了事件侦听器。我知道一定是这样愚蠢的事情。就我而言,我的大脑完全是在放屁。
mydrawevent
    -> function(a)
        -> function(e, data)