相关疑难解决方法(0)

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

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

例如:

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

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

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

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

jquery events dom

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

如何使用jquery取消绑定所有事件

我可以使用此代码删除点击事件,

$('p').unbind('click')
Run Code Online (Sandbox Code Playgroud)

但是,有一些方法可以删除所有事件吗?

有一个unbindAll在jquery中命名的方法?

谢谢

jquery events unbind

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

jQuery:我可以获得对元素绑定事件的引用吗?

我有一些元素与click事件绑定的函数.我想将相同的函数绑定到mouseovermouseout事件.是否可以获得对click事件的引用,以便我可以将其分配给其他事件?我在想象这样的东西(里面each()):

$(this).bind('mouseover', $(this).click());
$(this).bind('mouseout', $(this).click());
$(this).unbind('click');
Run Code Online (Sandbox Code Playgroud)

你可能会问的问题

为什么不直接更改将其绑定到click事件的代码?

设置它的JS是Drupal模块的一部分(DHTML菜单,如果你很好奇),所以我不想更改模块代码,因为当模块将来不可避免地更新时它将被清除.我还使用了click该页面的其他部分的处理程序-我只是想将它移动到mouseovermouseout一个菜单.

javascript jquery

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

如何优雅地禁用/启用所有jQuery UI按钮?

我目前在不同的页面中有几个动作按钮,每个按钮在单击时执行一些AJAX调用.换句话说,我在各地都有这样的代码: -

$("#searchButton")
    .button()
    .click(function() {
        ...
        $.get(url, { data: ...},  function(data) { ... });
        ...
    });
Run Code Online (Sandbox Code Playgroud)

在进行一些测试之后,似乎在调用回调函数之前,某些AJAX调用至少要花费几秒钟来处理.

我的计划是在进行AJAX调用时禁用该按钮,并在AJAX调用完成时将其启用.这是为了防止用户在处理请求时多次单击该按钮.我找到的一个解决方案是利用unbind()bind()功能.修改我的代码后,它现在看起来像这样: -

var searchButtonClickHandler = function() {
    ...
    $.get(url, { data: ...},  function(data) { ... });
    ...
};

$("#searchButton")
    .button()
    .ajaxStart(function() {
        $(this).button("disable").unbind("click");
    })
    .ajaxStop(function() {
        $(this).button("enable").bind("click", searchButtonClickHandler);
    })
    .click(searchButtonClickHandler);
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常.基本上,它在进行AJAX调用时删除了单击处理程序,并在完成AJAX调用时返回单击处理程序.

我的问题是...是有可能一概而论按钮禁用/启用,这样我就不必实现ajaxStart()ajaxStop所有的UI按钮?

理想情况下,我想使用我之前的代码片段仅在按钮上注册click事件处理程序,然后使用.ui-button选择器启用/禁用所有按钮,如下所示......

$(".ui-button")
    .ajaxStart(function() {
        $(this).button("disable").unbind("click");
    })
    .ajaxStop(function() {
        // not sure how to bind the handler here
        $(this).button("enable").bind("click", ?? ); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui

2
推荐指数
1
解决办法
6203
查看次数

标签 统计

jquery ×4

events ×2

javascript ×2

dom ×1

jquery-ui ×1

unbind ×1