我想用JavaScript创建一个自定义事件.
我有一个带有WebBrowser的WPF应用程序,以及一个带有JavaScript的HTML页面.
我使用打印机.当打印机的状态发生变化时,它会在.NET中触发事件.
然后,我OnPrinterStateChanged(state)使用InvokeScriptWebBrowser控件的函数调用JavaScript方法.
问题是我必须OnPrinterStateChanged(state)在我的网页中实现该方法.我无法更改方法的名称或订阅/取消订阅活动...
我想将JavaScript方法移到OnPrinterStateChanged(state)单独的JavaScript文件中.
我想要的是 :
OnPrinterStateChanged(state)我单独的.js文件,然后触发JavaScript事件并ChangeState调用该函数.我找到了一些解决方案,但我没有设法让它工作......最简单的方法是什么?
我很难理解命名空间自定义事件应该如何在jQuery中工作.我从doc获得了一个印象,即触发命名空间自定义事件只会触发专门绑定到该事件的处理程序.相反,似乎命名空间几乎被忽略了.以下示例和实时代码:http://jsfiddle.net/kZCBw/1/
$(document)
.bind("reset.one", function(){ console.log("reset.one event detected");})
.bind("reset.two", function(){ console.log("reset.two event detected");})
.bind("cheese", function(){ console.log("cheese event detected");});
$("#btn1").click(function(){
console.log("firing reset.one event");
$(this).trigger("reset.one");
});
$("#btn2").click(function(){
console.log("firing reset.two event");
$(this).trigger("reset.two");
});
$("#btn3").click(function(){
console.log("firing reset event");
$(this).trigger("reset");
});
//btn1 click should only trigger handlers bound to "reset.one"
//and yet it triggers anything starting w/ "reset"
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
提前致谢!-matt
在addEventListener元素上注册事件时,然后在不删除事件的情况下删除该元素,并且反复这样做会使内存"泄露"吗?