相关疑难解决方法(0)

jQuery查找使用对象注册的事件处理程序

我需要找到在对象上注册的事件处理程序.

例如:

$("#el").click(function() {...});
$("#el").mouseover(function() {...});
Run Code Online (Sandbox Code Playgroud)

$("#el")点击鼠标悬停注册.

是否有一个函数来找出它,并可能迭代事件处理程序?

如果通过适当的方法在jQuery对象上不可能,那么在纯DOM对象上是否可能?

jquery events dom

538
推荐指数
8
解决办法
40万
查看次数

测试事件处理程序是否绑定到jQuery中的元素

是否可以确定元素是否具有单击处理程序,或更改处理程序,或使用jQuery绑定到它的任何类型的事件处理程序?

此外,是否可以确定它对于给定类型的事件有多少点击处理程序(或任何类型的事件处理程序),以及事件处理程序中有哪些功能?

javascript jquery

191
推荐指数
8
解决办法
14万
查看次数

如何检查元素是否有点击处理程序?

可能重复:
测试事件处理程序是否绑定到jQuery中的元素

试图做以下(链接是'a'标签的jQuery对象):

 link.data("events") //undefined even if link has event handlers
 jQuery.data(link, 'events') //undefined always also
 jQuery._data(link, 'events') //undefined always also
Run Code Online (Sandbox Code Playgroud)

使用jquery-1.8.3

那么,如何检查元素是否有点击处理程序?

javascript jquery javascript-events

20
推荐指数
1
解决办法
5万
查看次数

使用click事件查找元素

如何通过jQuery(2.2.1)找到具有click事件的每个元素?

这似乎不再起作用了:

console.log($._data( $(this)[0], 'events' ))
Run Code Online (Sandbox Code Playgroud)

jquery jquery-selectors

10
推荐指数
1
解决办法
525
查看次数

jQuery检查元素上是否存在onClick

我找到了检查元素上是否存在事件的方法.但它不适用于未由jQuery委派的事件......

当我尝试时,

$("a").data("events");
Run Code Online (Sandbox Code Playgroud)

为了这.

<a href="#" onClick="alert('Hello, World!')" />
Run Code Online (Sandbox Code Playgroud)

它返回undefined.

有没有办法检查onQuery是否存在于jQuery的元素上?

谢谢.

javascript jquery javascript-events

7
推荐指数
2
解决办法
3万
查看次数

Javascript:检测/防止外部脚本

是否可以检测可能通过浏览器加载项,代理,xss等加载到页面中的外部脚本?

说我有这个网页:

<html>
    <head>
        <title>Hello world!</title>
        <script src="http://mydomain.com/script.js"></script>
    </head>
    <body>
        Hello world!
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

是否可以在我的script.js文件中包含一些脚本,以检测页面上的其他脚本元素何时来源http://mydomain.com

我想要的东西可以检测源中包含的其他脚本(即onload事件触发时它们存在)和页面加载后的任何时间添加的脚本.

如果我能检测到这些脚本,我还能以某种方式阻止它们吗?

如果我知道还有其他的事情发生,这对于调试用户报告的javascript/ui问题很有用.

我使用jQuery,所以jQuery的答案对我有用.我只是不想限制jQuery的答案.


编辑

我的解决方案如下.但是,它有两个(潜在的)问题:

  1. 这取决于jQuery.
  2. 它不会检测通过CSS @import规则(或任何带有url()值的规则)加载的外部资源.

如果有人想提交一个解决其中一个或两个问题的答案,我会赞成.

如果你两个都解决了,我会接受你的回答.

html javascript xss load external

6
推荐指数
1
解决办法
4918
查看次数

使用JavaScript或jQuery如何检查窗口上是否存在事件?

建立

我已经将一个事件附加到'window'对象,我想通过代码检查它是否在那里.

window.addEventListener('beforeunload', function(e){ /*...*/ }, false)
Run Code Online (Sandbox Code Playgroud)

尝试

我已经尝试过简单的jQuery,没有运气.我jsFiddle更多的尝试.

window.beforeunload //is undefined as is window.onbeforeunload

$(window).data('events') //not working either
Run Code Online (Sandbox Code Playgroud)

这可能吗?

关于DOM和其他元素也有类似的问题(这里这里),但我尝试过的方法都没有.

javascript jquery javascript-events

5
推荐指数
1
解决办法
6110
查看次数

使用单击事件更改所有元素的样式

我正在学习JQuery,因为我正在对网站进行重大的重新设计.我意识到这将是多么好的做一些造型中的JavaScript,而不是记住要正确的CSS类添加到每一个DIV(显然,我想忘记这样的事情).

无论如何,我想将样式添加cursor: pointer;到已注册click事件的所有元素.我认为它需要看起来像这样:

$("div").Find(/*Has Click Event*/)
  .css("cursor", "pointer");
Run Code Online (Sandbox Code Playgroud)

jquery

5
推荐指数
1
解决办法
806
查看次数

用于加载 jquery.unobtrusive-ajax.js 的 asp-fallback-test

我正在构建 ASP-NET CORE 3.1 MVC Web 应用程序。我希望使用 CDNJS 网络来提供我的脚本资源文件,并且由于这是一个生产应用程序,因此当 CDN 可能离线时我必须回退到本地副本。这是一项相当基本的任务,我可以成功加载多个库,例如 Bootstrap 4.5、jQuery 3.3 等。

您可能知道,ASPNET 核心脚本标记帮助程序具有很棒的内置功能,可以自动执行我想要执行的操作。当尝试加载时,jquery.unobtrusive-ajax.min.js我无法决定我的后备测试功能实际上应该是什么。这 ?????下面代表我无法工作的代码。

基本上,我需要编写false在 CDN 不可用时返回的 JS 代码。这段代码将被插入到??????.

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-ajax-unobtrusive/3.2.6/jquery.unobtrusive-ajax.min.js"
        asp-fallback-src="~/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.js"
        asp-fallback-test="window.jQuery && ?????">
</script>
Run Code Online (Sandbox Code Playgroud)

jquery cdn asp.net-core asp.net-core-3.1

5
推荐指数
1
解决办法
644
查看次数

在javascript中是否有一种方法可以检测元素是否附加了任何事件?

我在页面上有一个链接列表,有时它们会附加事件,有时不会(它们只是不做任何事情).我想说,'如果这个元素没有事件处理程序(基本上它没有做任何事情),那么就为它添加一类禁用.我用谷歌搜索它,但没有找到任何检测事件处理程序的东西.有谁知道这样做的方法?

html javascript jquery

4
推荐指数
2
解决办法
2220
查看次数

jQuery - 将e.preventDefault()添加到所有链接点击事件?

我在jQuery中制作一个脚本,我有很多点击链接点击事件.问题是我不希望我点击事件的链接除了事件之外做任何事情,所以我e.preventDefault();在所有点击事件的开始.但是我有很多点击事件,那么有没有更简单的方法来添加e.preventDefault();到所有链接点击事件?请记住,我还有一些我希望按照自己e.preventDefault();的意愿工作的链接,因此添加到所有链接将无法正常工作,我只想将其添加到具有click事件的链接中.

javascript jquery

3
推荐指数
1
解决办法
6224
查看次数

如何检查事件是否绑定到元素,以防止重复绑定?

我有一个函数,基本上创建一个覆盖整个页面的叠加div元素.它还将resize事件绑定到窗口,因此每当调整窗口大小时,叠加层也会更改其大小:

function stdOverlay() {
    var overlay = $('<div />').css({width : $(window).width(), height : $(window).height()});
    var overlayResize =
    function() {
        $(overlay).css({width : $(window).width(), height : $(window).height()});
    };
    $('body').append(overlay);
    $(window).resize(overlayResize);
    //... other codes,  like remove overlay and unbind the events
    //$('div.stdgui-overlay').unbind('resize', overlayResize);
}
Run Code Online (Sandbox Code Playgroud)

每次调用该函数时,如果没有,则添加一个叠加层,并将resize事件绑定到窗口.当它应该删除重叠事件时,它也会取消绑定事件.如果overlayResize方法绑定到window元素,如何防止重复绑定?就像是:

    if(overlyResize is not bound to window)
        $(window).resize(overlayResize);
    else
        //do something else or do nothing;
Run Code Online (Sandbox Code Playgroud)

jquery events bind

0
推荐指数
1
解决办法
2311
查看次数