0

如何为使用Dropkick jQuery 插件<select>样式的元素分配“点击”功能?Dropkick 不直接支持函数,所以我试图创建一个单独的“点击”函数,但我尝试过的方法不起作用 click

$('#Select1').click(function () {
    var $select2 = $('#Select2');
    removeDefaultFromSelect($select2);
});

我知道必须为更改事件处理程序分配插件的“自定义change回调”,但我假设有一种方法可以click在使用 Dropkick 样式的元素上调用函数(特别是因为这个 SO 帖子似乎暗示有办法在 Dropkick 的“自定义change回调”中调用它)

我正在尝试添加一个单击功能,以便在单击“#Select1”时触发以下功能,而不仅仅是在更改时触发。我在这里发布了一个函数的工作示例:http: //jsfiddle.net/chayacooper/zJ5c3/#username

现有功能

// Helper function that removes "_default" from the end of the option values for the given select element.
function removeDefaultFromSelect($select) {
    $select.find('option[value$=_default]').prop('value', function(i, value){ return value.replace(/_default$/g, '');
    });
}

$('#Select1').dropkick({
    change: function(value) {     
        var $select2 = $('#Select2');
        removeDefaultFromSelect($select2);
        $select2.val(value);      
    }
});
4

1 回答 1

0

我还没有找到将click事件与 Dropkick 一起使用的方法,但我通过创建 2 组<select>元素找到了一个有点复杂的临时解决方法 - 一组使用标准元素并隐藏( display:none),另一组使用 Dropkick 和对用户可见。因为它使用该change()方法,所以如果用户单击下拉框然后有意识地决定保留“默认”值,则不会修改该值。

我已经用我在这里使用的方法发布了一个小提琴:http: //jsfiddle.net/john_s/yhAX5/4/

function removeDefaultFromSelect($select) {
    $select.find('option[value$=_default]').prop('value', function(i, value){ return value.replace(/_default$/g, '');
    });
}

$('#Select1').dropkick({
    change: function(value) {
        var $select2 = $('#Select2');
        removeDefaultFromSelect($select2);
        $select2.val(value);
    }
});
于 2013-04-14T19:43:44.530 回答