如何仅对点击元素的.draggable父元素切换拖拽禁用/启用功能
实现可拖拽元素的禁用/启用切换(仅作用于点击元素的.draggable父元素)
我需要实现可拖拽元素的禁用/启用切换功能,且仅将该功能应用于点击元素的带有.draggable类的父元素。目前切换类的功能正常,但不知道如何将this传递给对应的禁用/启用函数。
原始代码:
jQuery("a.check").click(function() { jQuery(this).toggleClass("active"); jQuery(this).hasClass("active") ? disableDrag() : enableDrag(); }); function disableDrag(){ jQuery(".draggable").draggable("disable"); } function enableDrag(){ jQuery(".draggable").draggable("enable"); }
可行解决方案
jQuery("a.check").click(function() { jQuery(this).toggleClass("active"); jQuery(this).hasClass("active") ? disableDrag(this) : enableDrag(this); }); function disableDrag(obj){ jQuery(obj).closest('.draggable').draggable("disable") } function enableDrag(obj){ jQuery(obj).closest('.draggable').draggable("enable") }
关键改动说明:
- 点击事件调用
disableDrag和enableDrag时,将当前点击元素的this作为参数传入 - 在功能函数内,通过
jQuery(obj).closest('.draggable')精准定位到点击元素的.draggable父元素,避免影响页面中所有.draggable元素
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

