jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery-ui – 带有嵌入式div的jQuery draggable div,它有一个单击处理程序.如何阻止点击处理程序触发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下一点 jquery

http://jsfiddle.net/tad604/Ck2qk/10/

单击并拖动时,我希望foo div的单击处理程序不会触发.我已经尝试在拖动(event.stopPropagation()等)的停止/启动事件中做各种各样的事情都无济于事.无论如何,在拖动事件之后触发单击处理程序.

解决方法

这很烦人,但唯一的解决方法是在拖动开始时移除事件并将其放回拖动停止.试试这个:

$(".foo").click(function(){
    alert("blah");
});
$(".bar").draggable({
    stop: function(event) { setTimeout(function() {
        $(".foo").click(function(){
            alert("blah");
        }); },100)},start: function(event) { $('.foo').unbind('click'); }                
});

现在仍然存在一个问题,即您的点击事件可能比这更复杂,您可能不希望重写它们.您可以使用如下的jquery数据保存事件以供日后使用:

var events = $(‘#test’).data(“events”);

或者,您可以使用jquery live函数来附加click事件,以便事件只会被绑定到与该选择器匹配的元素.这意味着如果您在拖动时更改类,以便它不再匹配该选择器,它将不再具有该click事件.像这样的东西可能会起作用:

$(".bar .foo").live('click',function(){
    alert("blah");
});
$(".bar").draggable({
    stop: function(event) { setTimeout(function() {
    $(".draggableBar").removeClass('draggableBar').addClass('bar');
    },start: function(event) { $(this).removeClass('bar').addClass('draggableBar'); }                
});

还必须更新css,以便draggablebar获得与bar相同的样式.

大佬总结

以上是大佬教程为你收集整理的jquery-ui – 带有嵌入式div的jQuery draggable div,它有一个单击处理程序.如何阻止点击处理程序触发全部内容,希望文章能够帮你解决jquery-ui – 带有嵌入式div的jQuery draggable div,它有一个单击处理程序.如何阻止点击处理程序触发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。