如何从函数中获取选择器?

时间:2016-02-26 11:18:28

标签: jquery

我需要将特殊选择器传递给事件处理程序。特殊选择器由函数计算:

var getSelectableItems = function () {
    return $('.item').not('.disabled');
}

$(document).ready(function () {
    $body = $('body');
    $body.on('click', $(getSelectableItems()), function () {
        // .. do something
    });
});

getSelectableItems()方法只是一个示例。我的真实代码看起来不同。我的观点是:如何让一个函数返回一个选择器并在显示的那种click事件处理程序中使用这个选择器?

我的当前解决方案会在每次点击/任何DOM元素上触发。但我希望click事件仅在函数返回的DOM元素点击时触发。

2 个答案:

答案 0 :(得分:1)

看看是否有效,

$(document).ready(function () {
    var dumbVar = $('body');
    dumbVar.on('click', $(getSelectableItems()), function () {
        // .. do something
    });
});

答案 1 :(得分:0)

您可以在所需的选择器上创建单击处理程序(具有类 .item 但没有类 .disabled 的元素):

$(document).ready(function () {
    $body = $('body');
    $body.on('click', '.item:not(.disabled)', function () {
        // .. do something
    });
});