Tag: javascript events

为什么事件对象不同来自jquery bind和addEventListener

为什么当我使用jQuery绑定我返回的事件对象时,我使用addEventListener返回的事件对象不同? 此jQuery绑定产生的事件对象没有targetTouches数组(除其他外),但addEventListener中的事件没有。 是我还是不对的? $(document).ready (function () { $(“#test”).bind(“touchmove”, function (event) { console.log(event.targetTouches[0].pageX); // targetTouches is undefined }); }); 与 $(document).ready (function () { var foo = document.querySelectorAll(‘#test’) foo[0].addEventListener(‘touchmove’, function (event) { console.log(event.targetTouches[0].pageX); // returns the correct values }, false); });

如何使用jQuery / javascript将事件的处理限制为每X秒一次?

对于快速触发的keypress事件,我希望将事件的处理限制为每X秒最多一次。 我已经在使用jQuery进行事件处理,所以基于jQuery的解决方案会更受欢迎,尽管vanilla javascript也很好。 这个jsfiddle快速显示按键触发,不受任何操作限制 这个jsfiddle实现了使用setTimeout() vanilla JS中的处理限制为每0.5秒一次 我的问题是 jQuery有内置的方法吗? 我在.on() 文档中没有看到任何内容 如果没有,在我的第二个jsfiddle例子中使用vanilla JS有没有更好的模式呢?

由addEventListener注册的jQuery触发器mousedown

我想通过jQuery trigger()方法模拟假mousedown事件,并通过本机javascript方法注册mousedown事件 – addEventListener()。 我发现它无法触发…… elem.addEventListener(‘mousedown’, function () { alert(‘addEventListener’); }); $(elem).on(‘mousedown’, function () { alert(‘on’); }); $(elem).trigger(‘mousedown’); jsFiddle中的示例 我做了一些测试。 通过jQuery注册mousedown事件() 结果:有效 通过addEventListener()注册click事件 结果:有效 这里有什么不对吗? 谢谢。 PS使用addEventListener()的原因是我想编写一个没有jQuery的库。

jQuery.data不再适用于窗口?

我最近将我们项目的jQuery文件从1.4.2升级到1.4.4 ,看起来从1.4.3我们使用jQuery.data已停止工作。 我们有这个代码: var events = $(window).data(‘events’); if (events.scroll) if (!events.scroll.include(handler)) $(window).scroll(handler); 目的是防止此特定处理程序被多次绑定。 在1.4.2 ,这很好。 在1.4.4 , events未定义。 function handler() { //do something } $(document).ready(function(){ $(window).scroll(handler); $(‘div#test’).scroll(handler); $(window).data(‘events’) -> undefined $(‘div#test’).data(‘events’) -> Object }); 这个API改变了什么? 我该如何列出window事件? 我已将第一行更改为: var events = $(window).data(‘__events__’).events; 有点凌乱,但将事件连接到普通对象的能力是令人信服的。

如何将jQuery事件处理程序附加到YouTube电影?

[编辑:对于那些已经回答的人 – 抱歉 – 在我睡眠不足的状态下,我忘记了这种特殊情况是YouTube电影,而不是JW FLV播放器。 我可以看到有更多关于与YouTube电影互动的文档,所以我会追求这一点,但也欢迎更多信息] 我正在使用jQuery循环插件( http://malsup.com/jquery/cycle/ )在正在轮换的div集合中使用嵌入式YouTubevideo。 当我点击其中一部电影开始播放时,我希望循环停止,但我无法弄清楚如何将jQuery事件处理程序附加到播放器对象。 这是我当前代码的样子(你不能直接用jQuery选择一个对象标签,所以我选择父div然后将object元素作为第一个子元素): $(“div.feature-player”).children(“:first”).click(function(event) { $(‘#features’).cycle(‘stop’); }); 但这并不能解决问题。 我不是Flash的作者,所以我对ActionScript并不熟悉,之前我从未在JavaScript和Flash电影之间建立过互动。 谢谢你的帮助! – 保罗

有没有办法解雇忽略z-index的事件?

如果我有这样的事情: 有没有办法在BOTH div上触发mouseover事件? 编辑:对不起所有..我试图简化这个问题所以很清楚理解,我忘了提到我有超过100个这样的div那么可能那些解决方案不起作用。 我要看看我是否可以对它们进行调整。 非常感谢大家。

jquery临时解除绑定事件

也许我完全错过了甚至在jQuery中处理的东西,但这是我的问题。 我们假设有一些事件绑定,比如 $(element).bind(“mousemove”, somefunc); 现在,我想介绍一个新的mousemove绑定,它不会覆盖前一个,但暂时排除(解除绑定)它。 换句话说,当我绑定我的函数时,我必须确保没有其他函数将执行该事件,直到我恢复它们。 我正在寻找类似的东西: $(element).bind(“mousemove”, somefunc); // Somefunc is used regularly var savedBinding = $(element).getCurrentBinding(“mousemove”); $(element).unbind(“mousemove”).bind(“mousemove”, myfunc); // Use myfunc instead $(element).unbind(“mousemove”, myfunc).bind(“mousemove”, savedBindings); 当然,somefunc不在我的控制之下,否则这将是无用的:) 我的理解是可以将多个函数绑定到同一个事件,并且无法预先确定这些函数的执行。 我知道停止事件传播和立即事件传播,但我认为它们在我的情况下是无用的,因为执行顺序无法确定(但也许我得到这些错误)。 我怎样才能做到这一点? 在此先感谢~Aki 编辑:我需要强调这一点:我需要不执行以前安装的处理程序(somefunc)。 我没有定义该处理程序,它可能是或可能不存在,但它由第三方用户安装。 EDIT2:好的,现在这是不可行的,我想我需要eventListenerList,它还没有在大多数浏览器中实现。 http://www.w3.org/TR/2002/WD-DOM-Level-3-Events-20020208/changes.html

使用javascript添加天数

我想使用javascript将日期添加到给定日期。 我有以下代码 function onChange(e) { var datepicker = $(“#DatePicker”).val(); alert(datepicker); var joindate = new Date(datepicker); alert(joindate); var numberOfDaysToAdd = 1; joindate.setDate(joindate + numberOfDaysToAdd); var dd = joindate.getDate(); var mm = joindate.getMonth() + 1; var y = joindate.getFullYear(); var joinFormattedDate = dd + ‘/’ + mm + ‘/’ + y; $(‘.new’).val(joinFormattedDate); } 在第一个警报我得到日期24/06/2011但在第二个警报我得到Thu Dec 06 2012 […]

event.keycode vs event.which

我忽略了Firefox的keydown行为,因为按下回车键(实际上是任何键)而不关注特定字段将不会触发keydown事件,它只会触发按键事件。 这可能非常令人困惑,因为keydown和keyup事件使用JavaScript密钥代码,而keypress使用ASCII代码。 幸运的是,13(输入/返回)对两者都很常见。 在这种情况下,使用按键的 FF有什么原因吗? 有什么好处? 一旦建立IE8就会愚蠢,因为它不允许preventDefault要求而不是returnValue = false ,来自另一个SOpost的以下片段certificate非常有用: event.preventDefault ? event.preventDefault() : event.returnValue = false; 在搜索解决这些问题的过程中,我一直对event.keycode和event.which感到困惑。 即我使用类似于以下的switch语句做错了: $(“#class_Name”).bind(“keydown”, function(event){ // do not test input if field controls used switch(event.which){ case 13: //enter key event.preventDefault ? event.preventDefault() : event.returnValue = false; break; } 以下是否更好,如果是这样,为什么? $(“body”).keypress(function(event){ // stop inadvertant form submission if (event.keycode == “13”){ […]

输入搜索的重置选项是否有可用的事件?

在HTML5中有一个新的输入类型,’搜索’。 在大多数浏览器上,它仅仅是一个简单的“文本”输入,但对于基于webkit的浏览器,它会添加一点交叉来重置输入。 我希望能够处理这个问题,有没有这样的事件?