删除组中单击的复选框上的“悬停”功能

时间:2012-07-13 23:23:12

标签: jquery

我正在尝试删除组中单击的复选框上的“悬停”功能。我可以通过以下方式在组中的所有复选框上执行此操作:

$(document).off('hover', '.myClass .leftSpan');

有没有办法从点击的复选框中删除它?

'hover'功能将悬停放在首位,点击是为了开始填充记录集但我想:

$(document).on('hover', '.myClass .leftSpan', function () {
    var parID = $(this).prev('input').prop('id')
    $('#lblOutput').text(parID);
    GetSites(parID, 'false');
    GetGroupMetadataFromGroupID(parID);
});

这是点击功能:

$(document).on('click', '.myClass .leftSpan', function () {
    var parID = $(this).prev('input').prop('id')
    $('#lblOutput').text(parID);
    GetSites(parID, 'false');
    GetGroupMetadataFromGroupID(parID);
    $(document).off('hover', parID);
});

但它不起作用。我将需要对任何被点击的人这样做。这可能是从一个点击到全部点击。

任何想法?

3 个答案:

答案 0 :(得分:0)

您可以使用命名空间事件,它会更容易,更易读。

var myhover = function () { ... }
$(document).on('hover.myhover', '.myClass .leftSpan', myhover) //on
$(document).off('hover.myhover') //off

在任何情况下,除非您的元素是body的直接子元素,否则您应该使用最接近的静态父级而不是document来获得最佳性能。

答案 1 :(得分:0)

$(document).off("hover", ".myClass:checked");

甚至更好

$(".myClass:checked").off("hover")

答案 2 :(得分:0)

真正的简单解决方案。我没有找到一种令人满意的方法来删除悬停属性,所以我重新配置了代码测试,如果选中了复选框,如果是,则错过调用与复选框相关的位置列表的代码。