Tag: unbind

在动画时使元素不可点击

我正在尝试使元素在动画时不可点击。 动画完成后,我希望它再次可以点击。 我已经搜索了很长时间以获得有关如何实现这一目标的一些帮助,但我无法让它工作,我不知道为什么。 HTML: Allright BCD 单击字母A时,它会向左移动,然后某些文本会在其旁边淡入淡出。 jQuery: (function() { var letterA = $(‘#a’), llright = $(‘#llright’); $(‘#a:not(.open)’).live(‘click’, function() { letterA.animate({ marginRight: “5.7in”, }, 1300, function() { letterA.addClass(‘open’); llright.fadeIn(1300); // Animation complete. }); }); $(‘#a.open’).live(‘click’, function() { llright.fadeOut(700); letterA.delay(700).animate({ marginRight: “0.0in”, }, 700, function() { letterA.removeClass(‘open’); }); }); })(); 动画效果很好,但这不是: if(letterA.is(‘:animated’)) { letterA.unbind(‘click’); }; 最后一部分根本不起作用,即使我插入一个简单的alert()而不是unbind()它似乎没有弄清楚A何时移动而不是。 […]

jQuery绑定unbind动画

我制作了这段代码,我试图为一块文本/ div前后动画制作动画,但为什么这只是第一次为“placeRight”函数工作? right : “+=750″有什么问题right : “+=750″属性? $(document).ready( function ( ) { $(“#text”).click(placeRight); }); var placeRight = function() { $(“#text”).animate( { right : “+=750” }, 1300); $(“#text”).unbind(“click”); $(“#text”).click(placeLeft); } var placeLeft = function() { $(“#text”).animate( { left : “+=750” }, 1300); $(“#text”).unbind(“click”); $(“#text”).click(placeRight); }

jquery rebind()禁用特定时间的事件,然后重新绑定它们

单击按钮后,我的脚本会加载新内容。 只要它正在加载我就不希望可点击的元素列表。 有没有办法取消绑定这些元素的点击事件,加载内容,然后正确“重新绑定”事件? 我想要阻止的是每个click-function / element中的if语句。 这是我尝试过的: $(load_button).click(function(){ $(‘a’).each(function(){ var dis_e = $(this).data(‘events’); $(this).data(‘disabled-events’, dis_e); }).unbind(‘click’); $(some_content).load(function(){ $(‘a’).each(function(){ var dis_e = $(this).data(‘disabled-events’); $(this).removeData(‘disabled-events’); $(this).bind(‘click’, dis_e); }); }); }); 更新: 它还应该防止元素(在这种情况下)警告“点击”: $(‘a’).click(function(){ alert(‘click’); });

点击事件多次触发问题,如何?

我有一个按钮。 当我点击它时,我将一些按钮附加到DOM。 我遇到的问题是那些我多次追加的按钮。 $(el).on(‘click’, function (e) { key(); }); function key() { $(document).on(‘click’, ‘#key li’, function () { console.log($(this)); }); } 第一次调用key() , console.log会触发一次 第二次调用key() , console.log会触发两次 等等 我已经尝试添加$(document).find(‘#key li’).unbind(‘click’) ,但这似乎不起作用 有任何想法吗? 编辑: 这是一个jsfiddle示例 (如下所示)。 $(‘button’).on(‘click’, function () { $(‘.cont’).remove(); $(‘.container’).remove(); var html = ‘clickplaceholder’; $(‘body’).append(html); key(); }); $(document).on(‘click’, ‘.cont’, function () { var html […]

jQuery / Javascript暂时禁用addEventListener / attachEvent附加的事件

有没有办法暂时禁用事件监听器? 在我的例子中,我有一个第三方库 ( 不是以 jQuery为中心),它使用addEventListener / attachEvent在元素上创建mouseover / mouseout事件。 在某些情况下,另一个事件会触发另一个元素,我需要禁用这些事件侦听器。 到目前为止,我的解决方案是简单地unbind鼠标hover/鼠标移除。 这通常可以正常工作,因为该事件通常会导致页面刷新。 但是,每次都会出现错误(认为validation错误)导致页面无法刷新,我需要重新附加mouseover / mouseout事件侦听器。 有用的信息 值得一提的是,因为mouseover / mouseout事件监听器是在第三方库中创建并附加的,所以我不能简单地将事件分配给变量并以这种方式绑定/取消绑定(AFIK是执行此操作的最佳方式)。 更新 我原先问过 在jQuery中是否有一种方法可以将事件侦听器分配给对象? 我发现不可能访问addEventListener / attachEvent分配的事件 : 在JavaScript中添加了attachEvent()/ addEventListener()的访问事件

移除/取消绑定hover在锚点上

HTML Home CSS a { color: blue; } a:hover { color: red; } 现在你可以看到现在在hover时会变成红色。 题 如何通过jQuery删除hover? 我试过了: $(‘a’).unbind(‘hover’); 和$(‘a’).unbind(‘mouseenter mouseleave’) 我开始想为什么它不起作用,这不是hover() ?

在Ajax请求之前解除ASP UpdatePanel中的事件以防止内存泄漏

这是一个常见的问题,ASP UpdatePanels中的jQuery小部件需要在ajax请求之后重新初始化,但是我的问题是在替换UpdatePanel内的HTML之前事件没有解除绑定。 每当调用.html(“…”)或.remove()时,jQuery都会为您解决此问题,但UpdatePanel不使用jQuery。 我有弹出元素(在UpdatePanel内部),当用户点击它们之外需要隐藏它们所以我做了一个jQuery特殊事件来检测何时发生这种情况,但是在Ajax请求之后永远不会调用Teardown函数。 因此,随着时间的推移,元素上的事件处理程序越来越多,不再附加到文档中。 我可以拥有我的小部件初始化函数(在每个Ajax请求之后运行),检查分离的元素并取消绑定它们的事件,但我担心这可能导致其他问题。

禁用单击事件处理程序一段时间

我已经看过类似的问题,但提供的答案涉及按钮而不是div元素。 当我单击id click div元素时, unbind()禁用click事件处理程序并将计时器设置为2秒。 2秒后,应该通过bind()再次启用click事件处理程序。 问题是click事件处理程序似乎没有“反弹”。 我将文本附加到另一个div元素以检查click事件处理程序是否处于活动状态。 这是我的jsfiddle: 的jsfiddle

Jquery,取消绑定鼠标滚轮事件,然后在操作完成后重新绑定它?

我一直在努力解决这个问题。我正在使用这个代码来监控鼠标滚轮所以它可以用于我用滑块滚动…但是,它有一个问题,操作排队等等如果你用鼠标滚动快速滚动(就像任何人会正常做的那样)它们会累积并导致错误的行为..我知道用动画处理这类问题,但不是用鼠标滚轮监视器。 我想做一些事情,比如在动作开始时取消绑定鼠标滚轮(在这种情况下,在鼠标滚轮移动后滚动滚动条)然后重新绑定它,所以如果用户做太多滚动太快它只是忽略直到最初滚动完成..我尝试下面的代码,但它没有重新绑定,所以我不知道我做错了什么,任何建议表示赞赏。 $(“#wavetextcontainer”).bind(“mousewheel”, function(event, delta) { //HERE IS WHERE EVENT IS UNBOUND: $(“#wavetextcontainer”).unbind(“mousewheel”); var speed = 10; var mySlider = $(“#slider”); var sliderVal = mySlider.slider(“option”, “value”); sliderVal += (delta*speed); if (sliderVal > mySlider.slider(“option”, “max”)) sliderVal = mySlider.slider(“option”, “max”); else if (sliderVal < mySlider.slider("option", "min")) sliderVal = mySlider.slider("option", "min"); $("#slider").slider("value", sliderVal); event.preventDefault(); // HERE I WANT […]

如何使用jquery中的切换来防止点击队列的建立? 尝试使用bind / unbind(’click’)

我想在切换动画显示时禁用点击处理程序,这样动画就不会因为多次快速点击而累积。 谢谢 jquery脚本: $(“#button”).click({ $(this).unbind(‘click’).next().toggle(“slow”,function(){$(‘#button’).bind(‘click’)}); }); HTML代码 <div Toggle test