草庐IT

前端事件监听

全部标签

javascript - NodeJS & Socket.IO : Emit a request event and get the response, 我应该何时/何地绑定(bind)监听器?

我目前想知道在这种情况下什么是最佳编程实践:假设我已将客户端连接到我的服务器。这个客户端要求服务器使用auth事件和他的用户名进行身份验证。socket=io();socket.emit('auth',"John");在这个简单的例子中,服务器响应一个带有用户ID的auth_succeed事件。io.on('connection',function(socket){socket.on('auth',function(username){socket.emit('auth_succeed',id);}}所以我的问题是,我应该在何时何地为客户端中的auth_succeed事件绑定(bind

javascript - 了解 ReactJS 中的合成事件

我需要一些帮助来理解ReactJS中所谓的合成事件。我编写了以下具有Video组件和VideoList组件的玩具程序。单击呈现的视频列表中的视频时,我会打印出在控制台中单击的视频。我不明白事件onVideoSelected()是如何定义的。它是否被呈现的Video组件中的onClick()事件所取代?谢谢!varVideo=React.createClass({handleClick:function(){this.props.onVideoSelected(this.props.title);},render:function(){return{this.props.title};}

javascript - 如何测试前端 JavaScript 库并与 Travis 集成?

我已经尝试过使用Jasmine或Mocha测试NodeJS库,但我不知道如何测试前端项目。我在网上找到了教程,但所有内容都在工作流程中包含一个任务管理器,我想知道如何在没有任务管理器的情况下执行此操作。我发现以下问题与我要问的很接近:UsingTravis-CIforclient-sideJavaScriptlibraries?就我而言,我正在使用Jasmine并且已经设置了JasmineSpecRunner.html、Jasmine库和spec/mylibSpec.js。当我在浏览器上运行SpecRunner.html时,测试通过了。现在,我如何将它与Travis集成,没有Grunt

javascript - 删除特定对象上的 jQuery 委托(delegate)事件处理程序

我已使用单个选择器将委托(delegate)事件处理程序附加到页面上的多个元素。由于事件是为单个元素触发的,所以我想仅根据某些条件逻辑关闭该元素的事件处理程序。这意味着我不一定要在第一次点击时禁用该事件。但如果不关闭所有这些,我不知道该怎么做。HTML:OneTwoThreeJS:$(document).on('click','button',function(ev){//doesn'tworkbecauseargumentneedstobeastring$(document).off('click',$(ev.target));//doesn'tdowhatIwantb/cturns

javascript - 在 JavaScript 和 jQuery 中使用委托(delegate)事件处理程序是否存在性能缺陷?

我在我的JavaScript代码中使用委托(delegate)事件处理程序(jQuery),因此当单击动态添加的按钮时会发生一些事情。我想知道这是否存在性能缺陷?//Delegatedeventhandler$(document).on('click','#dynamicallyAddedButton',function(){console.log("Hello");});在性能方面,它与此相比如何?//Regulareventhandler$("#regularButton").on('click',function(){console.log("HelloAgain");});查看

javascript - DataTable 1.10 - 禁用某些列的行选择事件

在最新版本(1.10)的DataTable中,section是在tableinit中设置的vartable=$('#companies').DataTable({language:{url:langUrl},select:true,....点击任何单元格将选择该行...但是,如果我用于滑动子行显示的第一列,我想避免行选择(第一列有一个'details-control'类..使用旧的Datatable版本,可以使用TableTools执行以下操作"fnPreRowSelect":function(e,nodes){if($(e.currentTarget).hasClass('detai

javascript - addEventListener ("loadedmetadata",有趣)没有正确运行,Firefox 错过事件

我写了一个页面,发现addEventListener("loadedmetadata",fun)在firefox上运行不正确我正在尝试修复一个旧软件的错误。在加载视频和页面时,该软件尝试在页面上绘制一些播放器Controller。它在Chrome和IE上运行良好,但无法绘制一些播放器Controller在Firefox上。我尝试调试几天,直到发现问题可以像这样简化:YourbrowserdoesnotsupportHTML5video.varvid=document.getElementById("myVideo");alert("Thevid");vid.addEventListen

javascript - 在不插入字符的情况下在 keydown 事件后关注字段

我有一个快捷键K。它应该专注于我的输入,但我不希望它在聚焦时插入字母K。$(document).keydown(function(event){if(event.which==75){$('input').focus();}}); 最佳答案 您可以使用event.preventDefault()来停止事件的标准行为。但是请注意,这将阻止在input中输入字母K。为此,您需要将keydown处理程序添加到input本身,以阻止事件传播到达document。试试这个:$(document).keydown(function(event)

javascript - 用于异步事件的 jQuery

我有一个html按钮需要异步触发3个事件。如果我有这个:$('#id').click(function(e){func1();});$('#id').click(function(e){func2();});$('#id').click(function(e){func3();});我能得到并发吗?或者如果一个功能需要很长时间,下一个功能会被阻止吗?Javascript如何处理这种顺序调用?谢谢, 最佳答案 “一个功能需要很长时间,下一个功能会被阻止”-您与我们共享的代码将以这种方式运行。您需要显式实现异步事件,因为@Zakaria

javascript - MS Edge 无法检测 <use> SVG 元素的委托(delegate)事件?

我想我在MSEdge中发现了一个令人不安的错误,它会影响动态创建的SVG元素。Edge似乎能够检测到直接绑定(bind)的事件,即$('.use').on('click',...),但是委托(delegate)事件$('body').on('click','use',...)被忽略。它最容易用JSFiddle来说明(在Chrome中测试,绑定(bind)都有效,而在Edge中委托(delegate)绑定(bind)不起作用):https://jsfiddle.net/Lr0arahb/有没有人对此问题有任何见解,并且知道可能的解决方法?最重要的是,我正在寻找一个我们仍然可以使用的解决方