Tag: javascript events

拉斐尔帆布(背景)onclick事件

我一直在与Raphael合作,在canvas上创建拖放形状。 我使用.drag()函数(在Raphael框架中提供)和我的事件函数来完成此操作。 这样做我没有问题。 我还有一个在dblClick上创建新形状的函数,问题是,我只能将事件附加到形状或我创建的其他元素。 向形状添加事件的方式如下: R = Raphael(“canvas”, “100%”, “100%”), R.rect(100, 100, 25, 50).attr({fill: fillColor}).dblclick(myDblClick); 在canvas上使用相同的原理不起作用 : R = Raphael(“canvas”, “100%”, “100%”), R.dblclick(myDblClick); 有没有人知道将点击事件附加到canvas的方法,即我可以点击div中的任何位置(不包括形状),然后触发事件。 谢谢。

a:不是(a:不是())选择器

我想要一个特定的动作,只要它的href属性与锚标记的click事件相关联: 不是以mailto:开头的mailto:和 不以#和结尾 存在任何值,包括空 所以我在尝试这段代码: https://stackoverflow.com/questions/11676962/anotanothref-selector/example.com Someone The Page This does nothing $(document).on(‘click’, ‘a:not([href^=”mailto\\:”], [href$=”\\#”], [href])’, myFunction); 它没有用。 但令我沮丧的是: $(document).on(‘click’, ‘a:not([href^=”mailto\\:”], [href$=”\\#”], a:not([href]))’, myFunction); 但我不明白怎么做。 注意内部:not() 。 据我所知, [href]意味着没有href属性。 还是相反? 有人能引导我走向光明吗?

在JQuery中何时应该使用.bind()over .click() – 或任何其他给定的事件?

我理解Live和Bind之间的区别,但是什么时候应该使用.bind()而不是’标准’事件方法,如下所示。 这两个呼叫的工作方式是否有任何关键差异? $(‘.clickme’).bind(‘click’, function() { // Handler called. }); $(‘.clickme’).click(function() { // Handler called. });

事件捕获,事件冒泡和jQuery.on()

我有一个关于事件捕获 , 冒泡和jQuery.on()的有趣问题。 我最近了解了更多关于事件捕获和事件冒泡之间的区别以及两者如何在DOM内的子父元素之间进行不同的流动。 因此,要添加具有“事件捕获方向”的事件侦听器,我将使用: element.addEventListener(“click”, myFunction, true); 并添加一个事件监听器与“事件泡沫方向”我将使用: element.addEventListener(“click”, myFunction, false); 这一切都很好,但我想知道的是当使用jquery.on()添加事件监听器时,如何在捕获和冒泡方面指定事件方向? 目前我使用的是: $(‘parent selector’).on(‘click’, ‘child selector’, function(){alert(‘just alert something already…’);}); 如何告诉jQuery需要在“事件捕获方向”或“事件冒泡方向”中添加这些事件监听器?

跨浏览器JavaScript输入实时更改/粘贴检测

是否有跨浏览器方式来检测输入字段的实时更改 ? 通过现场 ,我的意思不是当场失去焦点,而不是在下一个按键时,等等。 马上或类似的东西。 使用jQuery和.change() .keyup() .change() .keyup() .bind(‘paste’)等组合我可以在某些浏览器中进行实时更改检测,但不是全部 。 使用不同的组合将使其在其他浏览器中有所作为。 最棘手的工作是鼠标操作输入字段 – 选择文本并移动它(基本上是剪切和粘贴),右键单击和粘贴或剪切等等。出于某种原因甚至.mousedown()和.mouseup()似乎没有削减它。 我现在能想到的唯一跨浏览器解决方案是每隔100毫秒检查输入字段值 ,并将值与存储值进行比较。 但是,当基于事件的解决方案如此接近时, 这似乎有些过分 。 是否有一个jQuery插件可以做到这一点? 或者还有其他方法可以实现这一目标吗?

任何JQuery alert()替换JavaScript的本机?

我想用我自己的替换本机javascript alert(),这样我就可以控制主题并让它具有更多的JQueryUI外观和感觉。 我尝试了很多替代方案–JQueryUI Dialog,jAlert,jqAlert。 然而,似乎所有这些都不像原始警报那样以同样的方式同步运行。 例: function mytest() { alert(‘one’); alert(‘two’); alert(‘three’); } 在此示例中,使用原始alert(),3个对话框将一个接一个地显示在一行中。 但在替代品中,它们同时出现! 任何的想法?

在动态插入jQuery库完成加载后执行我的jQuery脚本

我通过标签在页面上动态插入jQuery库: jq = document.createElement(‘script’); jq.setAttribute(‘src’,’//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’); b.appendChild(jq); 然后我有一些jQuery脚本需要在jQuery库完成加载后运行并准备好使用: $(f).load(function() { $(f).fadein(1000); }); 如何让它等待jQuery加载?

jQuery中提供了哪些钩子?

官方只有$.cssHooks记录在jQuery API文档中 ,并且$.valHooks在一个句子中被提及,用于解决.val()的已知问题。 我想知道除了这两个之外,jQuery中有多少个钩子,我们应该在插件开发中使用$.valHooks吗? 如果是这样,我认为它应该被记录为专门的主题而不是仅仅一句话。

e.preventDefault();有多危险,可以用keydown / mousedown跟踪代替吗?

我正在为一个相当复杂的CRM制作跟踪脚本,以跟踪Google Analytics中的表单操作。 我正在努力平衡准确跟踪表单操作的愿望与永不阻止表单不工作的需要。 现在,我知道做这样的事情是行不通的。 $(‘form’).submit(function(){ _gaq.push([‘_trackEvent’, ‘Form’, ‘Submit’, $(this).attr(‘action’)]); }); 在有机会处理之前,DOM会卸载。 所以,很多示例代码推荐如下: $(‘form’).submit(function(e){ e.preventDefault(); var form = this; _gaq.push([‘_trackEvent’, ‘Form’, ‘Submit’, $(this).attr(‘action’)]); //…do some other tracking stuff… setTimeout(function(){ form.submit(); }, 400); }); 在大多数情况下这是可靠的,但它让我感到紧张。 如果e.preventDefault();之间发生了什么怎么e.preventDefault(); 当我开始触发基于DOM的提交时? 我完全打破了这个forms。 我一直在探索其他一些分析实现,我注意到这样的事情 : $(‘form’).mousedown(function(){ _gaq.push([‘_trackEvent’, ‘Form’, ‘Submit’, $(this).attr(‘action’)]); }); $(‘form’).keydown(function(e){ if(e.which===13) //if the keydown is the enter key _gaq.push([‘_trackEvent’, ‘Form’, […]

确定触发焦点事件的内容?

我需要确定导致焦点事件的原因。 理想情况下,我想区分点击,标签/键盘输入和手动(通过代码)触发器。 我怎样才能做到这一点? 我正在看事件对象,但我没有看到任何有用的东西。