Tag: javascript events

在jQuery mousedown处理程序中添加叠加层后,Internet Explorer泄漏了单击事件

在div的mousedown事件处理程序中,创建另一个新div并将其附加到正文。 这个新的div具有position:fixed (也可以是position:absolute )并且具有100%宽度和100%高度。 因此它立即覆盖触发鼠标按下事件的源div。 现在使用最新的谷歌浏览器(v30),最新的Firefox(v24),Opera v12.16甚至是旧版的Safari v5.1.1(在Windows上),在mousedown事件之后, 没有点击事件会在附加到身体的事件监听器上触发。 之后只有 Internet Explorer(9和10) 才会触发正文上的click事件! 为什么? 如何防止这种情况? 这实际上是IE中的一个错误吗? HTML: Click me CSS: .clickme { background-color: #BBB; } .overlay { position: fixed; /* or absolute */ left: 0; top: 0; height: 100%; width: 100%; background-color: #000; } JavaScript: $(document).on(‘click’, function(event) { console.log(‘body click’); }); $(‘.clickme’).on(‘mousedown’, function(event) { console.log(‘div […]

通过控制台在Facebook页面上发表评论

就像在图像中一样,Facebook评论框没有提交按钮,当你写东西并按下Enter按钮时,评论会发布。 我想通过在控制台中运行的JavaScript提交评论。 但我试图触发Enter事件,提交DOM的事件。 无法使它工作。

如何知道是否有任何Ajax请求和ajax成功

我想知道我该怎么编码呢 //if there is any ajax request $(“#loader”).css(“display”,”block”); //on success: $(“#loader”).css(“display”,”none”); 注意:我不打算在我的每个ajax请求函数中反复编码。 我想要它Genric。 所以我的脚本知道是否有任何ajax请求do $(“#loader”).css(“display”,”block”); 如果有任何ajax成功,请执行$(“#loader”).css(“display”,”none”);

使用JQuery实时利用用户输入的第一个字符

我试图自动大写用户输入的textarea /输入的第一个字符。 第一次尝试看起来像这样: $(document).ready(function() { $(‘input’).on(‘keydown’, function() { if (this.value[0] != this.value[0].toUpperCase()) { // store current positions in variables var start = this.selectionStart; var end = this.selectionEnd; this.value = this.value[0].toUpperCase() + this.value.substring(1); // restore from variables… this.setSelectionRange(start, end); } }); }); 这个问题是它显示小写字符,然后纠正它,这是丑陋的( http://jsfiddle.net/9zPTA/2/ )。 我想在keydown而不是keyup上运行我的javascript,并在飞行中转换事件(或拦截它,防止默认,并触发修改后的新事件)。 这是我现在拥有的,不起作用( http://jsfiddle.net/9zPTA/5/ ): $(document).ready(function() { $(‘input’).on(‘keydown’, function(event) { if (this.selectionStart […]

Javascript CustomEvent详细信息未通过

我正在尝试创建自定义javascript事件。 事件正常工作并触发,但我传递的’detail’对象不可用。 这是我用来创建和发送事件的代码; var double_tap = new CustomEvent(“doubleTap”, { detail: { hello: ‘world’ }, bubbles: true, cancelable: true }); this.dispatchEvent(double_tap); 然后我使用jquery向主体添加一个事件监听器; $(‘body’).on(‘doubleTap’, function( e ) { console.log(e); }); 它会触发,控制台日志会发生,但不幸的是,日志只输出事件详细信息,包括气泡和可取消属性,但从不输出’detail’对象,因此无法访问信息。 这是一个jsbin例子,我在body的click事件上创建事件,这样你就可以看到控制台; http://jsbin.com/looseroots/6 我想能够在事件被触发时从’detail’对象获取数据。 我究竟做错了什么? 我在Chrome和iOS上的Safari上测试了这个

如何判断页面是否已跳转到javascript中的锚点(#)?

我有一些javascript可以出现在许多不同的页面上。 有时这些页面是通过包含锚引用的URL(例如#comment-100)访问的。 在那些情况下,我希望javascript延迟执行,直到窗口跳转。 现在我只是使用延迟,但这非常hackish,显然在所有情况下都不起作用。 我似乎无法找到任何与窗口“跳转”相对应的DOM事件。 除了简单的延迟之外,我提出的唯一解决方案是让JS在URL中查找锚点,如果找到了,请注意scrollTop中的更改。 但这似乎有些错误,我并不是100%确定我的脚本在滚动发生之前总会被触发,所以只有当用户手动滚动页面时它才会运行。 无论如何,我真的不喜欢这个解决方案,并且更喜欢更多事件驱动的东西。 有什么建议? 编辑澄清: 我不是想检测哈希变化。 采用以下示例: Page index.php包含post.php#comment-1的链接 用户单击post.php#comment-1的链接 post.php#comment-1加载 $(文件).ready fires 不久之后,浏览器向下滚动到#comment-1 我正试图可靠地检测第5步发生的时间。

jQuery:如何停止绑定函数的传播而不是整个事件?

我有一个绑定到许多元素的单击函数。 有时这些元素可能彼此坐在一起。 因此,click事件绑定到子节点并绑定到其父节点。 该方法特定于单击的元素。 当然,由于事件冒泡,孩子的事件首先被解雇,然后是父母。 我不能同时调用它们,因为父母事件会覆盖孩子的事件。 所以我可以使用event.stopPropagation(),所以只有点击的第一个元素才会收到事件。 问题是还有其他点击事件也附加到元素,例如,我在这些元素上使用jQuery的draggable。 如果我停止传播click事件,则draggable不起作用,并且不会调用以下单击事件。 所以我的问题是:有没有办法停止事件将调用的方法事件冒泡而不是整个事件? 很棒的约翰,但这是问题。 click事件绑定到#Elm1和#Elm2。 .Elmchildren的宽度和高度均为100%。 所以他们实际上是目前的目标。

从chrome扩展内容脚本中选择的

我无意中尝试从chrome内容脚本激活change()事件。 我已经浏览了网站和谷歌post,但仍然无效。 这里是我试图实现的描述 考虑以下网页(如果有人帮助,可以通过http://www.gilzu.com/TFF/select.html访问): Untitled Page $(document).ready(function () { $(‘#woot’).die(‘change’); $(‘#woot’).live(‘change’, function () { $(‘#description’).text(jQuery(‘#woot’).val()); }); console.log(“window ready”); $(“#meh”).click(function() { $(‘#woot’).val(15); $(‘#woot’).change(); }); $(‘#woot’).val(21); $(‘#woot’).change(); }); a b c d e f g 什么工作:1。在启动时,change()激活并将选择框更新为21并在div上显示正确的值。 2.按下#meh按钮,将选择框更改为15,触发在屏幕上显示正确值的change()事件。 到目前为止并不奇怪。 所以我通过以下方式前往内容脚本: $(document).ready(function () { $(‘#woot’).val(17); $(‘#woot’).change(); }); 所以select标签更新,但change()事件不会触发。 我已经阅读了关于chrome扩展孤立世界的论坛,并对此理论进行了测试: $(document).ready( function() { $(“#meh”).click(); }); 并且它实际上触发了选择框的click事件和change事件! 另外,与另一篇声称与js的代码注入有效的post相矛盾: $(document).ready( function() { […]

jQuery – iPad / iPhone – 禁用后启用滚动function

我已禁用iPad上的滚动: function disableScrolling() { document.ontouchmove = function(e){ e.preventDefault(); } } 有没有办法再次启用它? 它在以下function中特别有用: function enableScrolling() { // enable scrolling }

通过固定内容传递鼠标滚轮事件

了解这一点的最好方法是看看这个小提琴 。 请注意,红色框中固定内容上的鼠标滚轮无效。 我想要滚动的可滚动div。 如果小提琴死了 – 基本上我有一个可滚动的div,上面有固定元素。 通常,当鼠标滚过可滚动的div时,它当然会滚动。 但是如果你在固定元素上,那么就不会发生滚动。 根据您的站点布局,这可能对用户来说是直观的。 jQuery解决方案没问题。