Tag: javascript events

如何使用jQuery阻止页面卸载?

在我的程序中,如果用户试图离开页面,他将收到一个对话框,询问他是否确定要离开。 如果用户选择不离开页面,我该如何实施’取消’选项? 来源javascript代码: $(window).unload(function(){ var c= confirm (“Are you sure?”); if (c){ alert(“Thanks. Good luck!”); } else{ ???? } }); 谢谢。

在没有jQuery的情况下收听jQuery事件

有没有办法设置事件监听器,所以它捕获jQuery触发的事件? 我想只使用普通(vanilla)JavaScript来收听事件。 我已经设置了以下示例: (function($) { $(document).on(‘sent_jquery_rec_jquery’, function () { console.log(‘sent_jquery_rec_jquery’); }); $(document).on(‘sent_vanilla_rec_jquery’, function () { console.log(‘sent_vanilla_rec_jquery’); }); document.addEventListener(‘sent_vanilla_rec_vanilla’, function () { console.log(‘sent_vanilla_rec_vanilla’); }); document.addEventListener(‘sent_jquery_rec_vanilla’, function () { console.log(‘sent_jquery_rec_vanilla’); }); document.dispatchEvent(new Event(“sent_vanilla_rec_vanilla”)); document.dispatchEvent(new Event(“sent_vanilla_rec_jquery”)); $(document).trigger(‘sent_jquery_rec_jquery’); $(document).trigger(‘sent_jquery_rec_vanilla’); }(jQuery)); 接收和记录的三个事件是: sent_vanilla_rec_vanilla sent_vanilla_rec_jquery sent_jquery_rec_jquery 当事件通过$(document).trigger ,使用document.addEventListener设置的事件监听器不会启动。原因是什么,以及如何使其工作?

在Firefox中访问全局事件对象

目标:在.ajaxStart()上运行一些函数,但仅限于某个事件触发。 代码: $(‘#loading_indicator’).ajaxStart(function() { if(event != null){ if(event.type == ‘hashchange’ || event.type == ‘DOMContentLoaded’){ $(this).show(); $(‘#acontents’).hide(); $(this).ajaxComplete(function() { $(this).hide(); $(‘#acontents’).show(); bindClickOnTable(); initFilterInput(); }); } } }); 问题:这在Firefox中不起作用。 在Internet Explorer和Chrome中,我可以愉快地访问事件对象而不将其传递给.ajaxStart(function() 。但是在Firefox中,事件对象是undefined 。 明显但不正确的解决方案:将event对象传递给函数。 这将无法工作,因为它将传递ajaxStart事件,我的检查将不再起作用。 问题:如何在此函数中访问全局事件对象?

为什么在pre-paste中将事件粘贴到jquery会触发?

我试图使文本框类似于Twitter ,因为我已经编写了代码 字数 使用的事件更改,密钥和粘贴 Keyup和Change事件运行正常,但粘贴事件有点奇怪,当我在textarea中粘贴一些东西时,字数不会在那一刻发生变化,经过一些调试后我发现粘贴事件在粘贴文本框上的东西之前会激活 。 我不知道他们是如何在Twitter上处理的。 这是我的代码:事件: ‘click #textboxId’ : ‘submitQuestion’ ‘keyup #textboxId’ : ‘wordCounter’ ‘change #textboxId’ : ‘wordCounter’ ‘paste #textboxId’ : ‘wordCounter’ wordCounter: -> #Code for Word Count# 由于粘贴事件的预粘贴性质,该实例上的工作计数不会发生变化。 您的建议和帮助将不胜感激,感谢您的时间。

延迟JavaScript的函数执行

我有一个JQuery的.each循环,每次迭代调用一个参数的函数,有没有办法延迟这个函数调用? 我已尝试过setTimeout,如下所示,但这不起作用,因为函数立即执行。 $.each(myArray, function (j, dataitem) { setTimeout(function () { showDetails(dataitem) }, 300); }); function showDetails(dataitem) { … } 数组大小大约是20,我要做的是在一定的时间范围内分配函数调用而不是立即,任何想法如何实现这一点? 我准备重写并重新调整函数的调用方式来完成这项工作,任何帮助都将受到赞赏。

jQuery中的addEventListener

可能重复: jQuery相当于JavaScript的addEventListener方法 还有一个非常好的jQuery教程: http : //itunes.apple.com/in/app/designmobileweb/id486198804?mt = 8 以下语句的jQuery等价物是什么; element1.addEventListener(‘click’,doSomething2,false) 如果是bind()方法,是否有任何选项来指定最后一个参数(即事件冒泡或捕获… true / false) 谢谢。

jQuery的click()函数如何比addEventListener()快得多?

我确信我们都看过vanilla-js的网站 (最快的JavaScript框架); D和我只是很好奇,确切地说,在为点击添加事件处理程序时,普通JavaScript比jQuery快多少。 所以我前往jsPerf进行测试,我对结果感到非常惊讶 。 jQuery的表现优于普通JavaScript超过2500% 。 我的测试代码: //jQuery $(‘#test’).click(function(){ console.log(‘hi’); }); //Plain JavaScript document.getElementById(‘test’).addEventListener(‘click’, function(){ console.log(‘hi’); }); 我只是无法理解这是怎么发生的,因为似乎最终jQuery最终必须使用与普通JavaScript使用的完全相同的function。 有人可以解释为什么会发生这种情况吗?

JQuery自动完成帮助

我有一个自定义的JQuery自动完成控件,声明是这样的。 $(‘#SystemCode_Autocomplete’).autocomplete({ source: [{“label”:”Access”,”value”:0},{“label”:”Documentum”,”value”:0}], //move values minLength: 1, change: function(event, ui) {// some function}, select: function(event, ui) {// some function} }); 更改和选择事件是自定义的。 问题是如果我在文本框中键入内容然后单击提交按钮(即没有标签输出或丢失焦点),或者如果我在键入文本框后按键提交,则不会触发更改事件,它必须在我提交之前。 我希望不要在提交按钮后面放置javascript,并且理想情况下在自动完成控件本身内执行此操作。 我尝试将更改添加到模糊事件。 ${‘foo’).blur(function() { $(‘bar’).trigger(‘autocompletechange’); // or ${‘foo’).blur(function() { $(‘bar’).change(); 但他们都没有工作,任何人都有任何想法?

jQuery:如何在onblur之前先点击onclick?

如果我目前专注于jQuery中的文本框,如何在onblur事件之前首先触发onclick事件? 预期输出:在texbox中的模糊事件之前首先触发按钮单击事件。 提醒“mybtn onclick alert” 演示: http : //jsfiddle.net/Zk8Fg/ 码: $(document).ready(function() { myFunc(); }); function myFunc() { $(‘#fname’).focus().blur(function() { alert(‘fname onblur alert’); }); $(‘#mybtn’).click(function() { alert(‘mybtn onclick alert’); }); } 谢谢 :)

使用鼠标滚轮事件在网站上滚动了多少像素?

我正在编写自定义滚动条并正在捕捉鼠标滚轮事件。 我正在使用它然后调整我要滚动的元素的scrollTop。 是否有标准数量的像素向下滚动,或者它是否因系统而异? 我在最新版本的Firefox中展示了114px: