将change,mouseup,mousedown,mouseout,keyup和keydown组合到一个函数中

时间:2014-04-02 20:26:33

标签: javascript jquery

我拥有的:

  1. 我有一个文本框,假定在相应的选择框中选择了任何选项的值。
  2. 我正在为on change,mouseup,mousedown,mouseout,keyup和keydown事件重复完全相同的功能
  3. 我需要什么:

    上述功能可以组合成一个以产生更有效的代码吗?它看起来非常重复。

    我的代码:

    JSFiddle:http://jsfiddle.net/clarusdignus/843YW/1/

    HTML:

    <label>Industry:</label>
    <select name="industry">
        <option selected="selected"></option>
        <option value="ag">Agriculture</option>
        <option value="co">Corporate</option>
    </select>
    <input type="text" disabled="disabled" name="industryspecifier"/>
    

    jQuery的:

    $('select[name=industry]').on('change', function() {
        $('[name=industryspecifier]').val($(':selected',this).val());
    });
    
    $('select[name=industry]').on('mouseup', function() {
        $('[name=industryspecifier]').val($(':selected',this).val());
    });
    
    $('select[name=industry]').on('mousedown', function() {
        $('[name=industryspecifier]').val($(':selected',this).val());
    });
    
    $('select[name=industry]').on('mouseout', function() {
        $('[name=industryspecifier]').val($(':selected',this).val());
    });
    
    
    $('select[name=industry]').on('keydown', function() {
        $('[name=industryspecifier]').val($(':selected',this).val());
    });
    
    $('select[name=industry]').on('keyup', function() {
        $('[name=industryspecifier]').val($(':selected',this).val());
    });
    

1 个答案:

答案 0 :(得分:12)

只需将它们与空格结合起来:

$('select[name=industry]').on('change mouseup mousedown mouseout keydown', function() {
    $('[name=industryspecifier]').val($(':selected',this).val());
});

<强> jsFiddle example

作为docs for .on()州:

  

events类型:String一个或多个以空格分隔的事件类型和   可选的命名空间,例如&#34; click&#34;或&#34; keydown.myPlugin&#34;。

相关问题