0
我有一个非常简单的小工具概述出现在通过_trigger
触发事件,我似乎无法绑定到:Jquery的插件触发没有被处理的事件或解雇
; (function ($) {
$.widget('testspace.ftpWidget', {
options: {},
widgetEventPrefix: 'ftpwidget:',
_create: function() {
var that = this;
that.paused = ko.observable(false);
},
_triggerPlayerInitialized: function() {
console.log("player initialized");
this._trigger("testeventname", null, null);
console.log("player testeventname supposedly fired");
},
pause: function() {
this.paused(!this.paused());
console.log("player paused");
this._triggerPlayerInitialized();
},
_destroy: function() { },
_setOption: function (key, value) { }
});
}(jQuery));
在HTML文件中:
<script>
jQuery(document).ready(function ($) {
$('#videoA').ftpWidget();
var widget = $('#videoA').data("testspace-ftpWidget");
console.log(widget);
$(widget).on("ftpwidget:testeventname", function (event, data) {
console.log("widget initialized");
});
widget.pause();
});
和控制台输出:
为什么这个事件没有被处理/或者它甚至没有被解雇?我怎样才能调试呢?
更新:
This answer,虽然不是我的问题,给了我一个提示。 OP正在呼叫on
从元素body
进行绑定。因此,我改变
$(widget).on("ftpwidget:testeventname", function (event, data) {
到
$("body").on("ftpwidget:testeventname", function (event, data) {
和它的工作,所以确实
$("#video").on("ftpwidget:testeventname", function (event, data) {
所以,现在我有工作,但真的不明白为什么。它是一个范围“东西”? 我想
“我要为testeventname
上widget
注册”
这是怎么回事吗?