草庐IT

javascript - 如何在 JavaScript(或 jQuery)中实现自定义广播事件?

我想实现一个可以“广播”的自定义事件,而不是发送到特定目标。只有那些已将自己注册为此类事件监听器的元素才会接收到它们。我的想法如下所示。首先,在代码的各个地方,都会有这样的语句some_subscriber.on_signal('some_signal',some_handler);我使用术语signal作为“广播事件”的简写。在上面的表达式中,some_subscriber通过为其提供处理程序将自己注册为此类信号的一种类型(称为“some_signal”)的监听器。在代码的其他地方,会有这样的语句publisher.signal_types['some_signal'].broadc

javascript - 取消 jQuery 事件处理

我按以下方式设置了onclick事件处理程序:element.onclick=function(){/*code*/}假设有使用jQuery方法bind()或类似处理程序设置的事件处理程序。$('element').bind('click',function(){/*anotherfunction*/})如何防止从我在开头描述的处理程序中调用使用jQuery定义的处理程序?注意stopPropagation()等。jQuery的方法不适用于该函数,因为它是通过native事件对象传递的。 最佳答案 我不是100%确定你在问什么,但也

javascript - 如果 deviceready 事件已经触发,我如何检查 cordova 是否准备就绪?

在cordova通过cordovacreate...提供的示例应用程序中,以下代码监听deviceready事件:bindEvents:function(){document.addEventListener('deviceready',this.onDeviceReady,false);},这很好,但是如果事件在我有时间监听之前就被触发了会发生什么?例如,将示例应用(上方)中的代码替换为以下内容:bindEvents:function(){setTimeout(function(){document.addEventListener('deviceready',this.onDevi

javascript - 如何检测 Materialized.js 模态关闭事件?

如何检测materialized.js的关闭事件?我想在通过单击模式关闭按钮或按退出按钮或单击屏幕的任何其他区域关闭模式时运行一些JavaScript代码。 最佳答案 看起来你的意思是modal的ma​​terializecss框架的关闭事件。至于0.97.1版本(2015年9月15日)打开模式时,您可以传递选项(参见:http://materializecss.com/modals.html#options),但请注意,这是一个非常具有欺骗性的描述,因为选项不会被保存使用lean_modal(https://github.com/

javascript - 使用 JQuery 将事件处理程序添加到 iframe

我想为iframe分配一个按键事件处理程序。类似于纯JS的东西:document.getElementById('iframe_id').contentWindow.addEventListener('keydown',funcName,true);我试过:$(document.getElementById('iframe_id').contentWindow).keydown(function(){//myfunc});但它不起作用..请帮助! 最佳答案 contentWindow是iframe的window对象。您需要ifram

javascript - jquery 多个事件处理程序

我已经根据我正在处理的最新项目中的类名定义了事件处理程序。例如。所有具有类名“foo”的元素都应该以特定的方式响应更改事件。所有类名为“bar”的元素都应该以其他方式响应。现在我的一些元素属于两个类,即class="foobar",它们应该以两种方式响应。现在,只有一个事件处理函数被调用。如何让两个响应同时执行。 最佳答案 这取决于您如何绑定(bind)事件。如果您通过jQuery绑定(bind)它们而不是通过x.onchange=function(){...}覆盖处理程序-所有绑定(bind)的事件处理程序都将被执行。这是因为jQ

javascript - 为什么必须将事件对象作为参数传递?

我正在学习如何在JavaScript中操作事件,我想知道“为什么在使用事件处理时必须将事件对象作为参数(argument)传递给函数?”这是我正在谈论的例子:document.getElementById('button_1').onclick=(function(event){alert("Theeventis:"+"on"+event.type);});我写了上面的代码,我非常理解它的作用。我只是不明白整个(事件)的过去。我认为这是一种将匿名函数分配给button_1.onclick事件处理程序的方法。事件处理程序是否在事件被分配之前尝试传递事件?...我很难理解这一点。如果有人可

javascript - JavaScript 更改输入值时的事件?

当时发生了什么事件?元素的值是通过JavaScript代码更改的吗?例如:$input.value=12;input事件在这里没有帮助,因为改变值的不是用户。在Chrome上测试时,change事件没有被触发。也许是因为元素没有失去焦点(它没有获得焦点,所以它不能失去它)? 最佳答案 没有内置事件。您至少有四种选择:任何时候你改变代码中的$input.value,调用你想要由改变触发的代码轮询更改给自己一个用于更改值的方法,该方法也会发出通知(#3的变体)给自己一个属性,您可以使用它来更改值,它也会发出通知其中,您会注意到#1、#3

javascript - addEventListener 在使用匿名函数传入参数时为同一个句柄触发多次

出于某种原因,事件监听器在将参数传递给匿名函数时会为每个元素触发两次。即,元素el上的点击事件将注册一次,因此触发一次。el.addEventListener("click",handle,false);el.addEventListener("click",handle,false);但如果我想将自己的参数传递给它,它会注册并触发两次。el.addEventListener("click",function(){handle(event,myArgument);},false);el.addEventListener("click",function(){handle(event,m

javascript - React JS 在悬停时切换/添加类

我将animate.css库与React一起使用,并尝试设置一个元素(按钮)在鼠标悬停时发出脉冲。试图查看文档和此处,但找不到实现此简单任务的方法。如果有人实现了这一目标或找到了引用,我们将不胜感激。classAppextendsComponent{constructor(props){super(props);this.handleHover=this.handleHover.bind(this);}handleHover(){this.setState({isHovered:!this.state.isHovered});}render(){constbtnClass=this.s