标签: events

如果我没有使用绑定或单击已绑定事件处理程序,我可以调用jquery click()来跟随<a>链接吗?

我的JavaScript中有一个计时器,需要模拟点击一个链接,一旦时间流逝就转到另一个页面.要做到这一点,我正在使用jQuery的click()功能.我已经使用$().trigger()window.location也,我可以作出打算与所有三个它的工作.

我观察到一些奇怪的行为,click()我试图了解发生了什么以及为什么.

我正在使用Firefox来解决这个问题,但我也对其他浏览器会对此做些什么感兴趣.

如果我没有使用$('a').bind('click',fn)$('a').click(fn)设置事件处理程序,那么调用$('a').click()似乎什么都不做.它不会为此事件调用浏览器的默认处理程序,因为浏览器不会加载新页面.

但是,如果我首先设置一个事件处理程序,那么即使事件处理程序什么都不做,它也会按预期工作.

$('a').click(function(){return true;}).click();
Run Code Online (Sandbox Code Playgroud)

这会加载新页面,就像我自己点击了一样.

所以我的问题是双重的:这种奇怪的行为是因为我在某处做错了吗?click()如果我没有创建自己的处理程序,为什么调用对默认行为不起作用?

编辑:

当霍夫曼确定他试图复制我的结果时,我上面描述的结果实际上并没有发生.我不确定是什么原因引起了我昨天观察到的事件,但我今天肯定这不是我在问题中所描述的.

所以答案是你不能在浏览器中"伪造"点击并且所有jQuery都会调用你的事件处理程序.您仍然可以使用window.location更改页面,这对我来说很好.

javascript firefox jquery events click

175
推荐指数
6
解决办法
42万
查看次数

jQuery中的自定义事件?

我正在寻找一些关于如何在jquery中以最佳方式实现自定义事件处理的输入.我知道如何从像'click'等dom元素中挂接事件,但我正在构建一个小的javascript库/插件来处理一些预览功能.

我有一个脚本运行来更新dom元素中的一些文本来自我得到的一组规则和数据/用户输入,但现在我需要在该脚本不可能知道的其他元素中显示的相同文本.我需要的是一个好的模式,以某种方式观察这个脚本产生所需的文本.

那我该怎么做?我是否忽略了jquery中的一些内置功能来提升/处理用户事件,还是需要一些jquery插件才能做到这一点?您认为处理此问题的最佳方法/插件是什么?

jquery events

174
推荐指数
6
解决办法
13万
查看次数

当'模糊'事件发生时,我怎样才能找出哪个元素焦点*到*?

假设我将一个blur函数附加到HTML输入框,如下所示:

<input id="myInput" onblur="function() { ... }"></input>
Run Code Online (Sandbox Code Playgroud)

有没有办法blur在函数内部获取导致事件触发的元素的ID (被点击的元素)?怎么样?

例如,假设我有这样的跨度:

<span id="mySpan">Hello World</span>
Run Code Online (Sandbox Code Playgroud)

如果我在输入元素具有焦点后立即单击跨度,则输入元素将失去焦点.该功能如何知道它mySpan被点击了?

PS:如果跨度的onclick事件发生在输入元素的onblur事件之前,我的问题就会解决,因为我可以设置一些状态值,表明已经点击了一个特定的元素.

PPS:这个问题的背景是我想在外部触发一个AJAX自动完成控件(来自可点击元素)来显示其建议,而不会因为blur输入元素上的事件而立即消失.所以我想检查blur函数是否单击了一个特定元素,如果是,则忽略blur事件.

javascript events

173
推荐指数
5
解决办法
13万
查看次数

如何在复选框单击时停止事件冒泡

我有一个复选框,我想对click事件执行一些Ajax操作,但是复选框也在一个容器内,它有自己的点击行为,当我点击复选框时我不想运行它.此示例说明了我想要做的事情:

$(document).ready(function() {
  $('#container').addClass('hidden');
  $('#header').click(function() {
    if ($('#container').hasClass('hidden')) {
      $('#container').removeClass('hidden');
    } else {
      $('#container').addClass('hidden');
    }
  });
  $('#header input[type=checkbox]').click(function(event) {
    // Do something
  });
});
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何停止事件冒泡而不会导致默认点击行为(复选框变为选中/取消选中)不运行.

以下两个都会停止事件冒泡,但也不会更改复选框状态:

#container.hidden #body {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

javascript checkbox jquery events

171
推荐指数
6
解决办法
16万
查看次数

Angular 2 Hover事件

在新的Angular2框架中,有没有人知道像事件一样悬停的正确方法?

Angular1中ng-Mouseover,但似乎没有结转.

我查看了文档但没有找到任何内容.

javascript events hover angular

166
推荐指数
7
解决办法
24万
查看次数

如何订购与jQuery绑定的事件

假设我有一个Web应用程序,其中有一个页面可能包含4个脚本块 - 我写的脚本可以在其中一个块中找到,但我不知道哪个是由控制器处理的.

我将一些onclick事件绑定到一个按钮,但我发现它们有时按照我没想到的顺序执行.

有没有办法确保订单,或者你过去如何处理这个问题?

javascript jquery events

164
推荐指数
7
解决办法
10万
查看次数

HTML"叠加",允许点击进入后面的元素

我正试图在网页上叠加一个元素(以绘制任意图形),我已经到了可以将其堆叠在一切元素之上的点,但是这可以防止用户点击任何链接/按钮/等.有没有办法让它的内容浮在一切之上(它是半透明的,所以你仍然可以看到背后的东西)并让用户与它下面的层进行交互?

我已经找到了很多有关DOM事件模型的信息,但没有一个解决了按钮和其他"本机"控件似乎从来没有获得点击的问题.

html javascript events dom click

163
推荐指数
5
解决办法
16万
查看次数

加载内容后要调用的AngularJs事件

我有一个函数,我想在加载页面内容后调用.我读到了$ viewContentLoaded,它对我不起作用.我正在寻找类似的东西

document.addEventListener('DOMContentLoaded', function () { 
     //Content goes here 
}, false);
Run Code Online (Sandbox Code Playgroud)

以上调用在AngularJs控制器中对我不起作用.

events loaded angularjs

158
推荐指数
5
解决办法
41万
查看次数

Javascript - 如何检测文档是否已加载(IE 7/Firefox 3)

我想在文档加载后调用函数,但文档可能已经或可能尚未完成加载.如果它加载了,那么我可以调用该函数.如果它没有加载,那么我可以附加一个事件监听器.我无法在onload已经触发后添加一个eventlistener,因为它不会被调用.那么如何检查文档是否已加载?我尝试了下面的代码,但它并不完全有用.有任何想法吗?

var body = document.getElementsByTagName('BODY')[0];
// CONDITION DOES NOT WORK
if (body && body.readyState == 'loaded') {
    DoStuffFunction();
} else {
    // CODE BELOW WORKS
    if (window.addEventListener) {  
        window.addEventListener('load', DoStuffFunction, false);
    } else {
        window.attachEvent('onload', DoStuffFunction);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript events onload addeventlistener

157
推荐指数
5
解决办法
29万
查看次数

在JavaScript中捕获浏览器的"缩放"事件

当用户更改页面中的缩放时,是否可以使用JavaScript检测?我只是想捕捉一个"缩放"事件并对其做出响应(类似于window.onresize事件).

谢谢.

javascript events zoom

155
推荐指数
5
解决办法
15万
查看次数