合并JQuery .focus脚本

时间:2015-02-09 12:07:19

标签: jquery

我很好奇最好的方法是整合这一堆Jquery .focus函数。

基本上,我使用它来允许URL上有#ID,当它出现时,Jquery会更新页面上显示的表单。

最好的方法是整合这个,这样我就不必一遍又一遍地重复相同的代码?

注意,所有带有ID的元素都有相同的类。

谢谢, Ĵ

-

$('#select-1').focus(function(e) {
            // set the selected choice based on URL ID
            $category_select.val('1');
            updateSupport($categorychoice.val());
        });

    $('#select-2').focus(function(e) {
            // set the selected choice based on URL ID
            $category_select.val('billing');
            updateSupport($categorychoice.val());
        });

    $('#select-3').focus(function(e) {
            // set the selected choice based on URL ID
            $category_select.val('setup');
            updateSupport($categorychoice.val());
        });

    $('#select-4').focus(function(e) {
            // set the selected choice based on URL ID
            $category_select.val('errors');
            updateSupport($categorychoice.val());
        });

    $('#select-5').focus(function(e) {
            // set the selected choice based on URL ID
            $category_select.val('customization');
            updateSupport($categorychoice.val());
        });

    $('#select-6').focus(function(e) {
            // set the selected choice based on URL ID
            $category_select.val('6');
            updateSupport($categorychoice.val());
        });

2 个答案:

答案 0 :(得分:0)

为什么不向每个'select-?'添加属性(例如data-source-id =“item id”)然后你可以使用css选择器附加focus()和属性来确定它与哪个id相关...

$(".myCssName").focus(....)

$category_select.val( $(this).data("source-id") )

根据kpblc的建议编辑

答案 1 :(得分:0)

尝试使用Object:

var values = {
  'select-1' : '1',
  'select-2' : 'billing',
  'select-3' : 'setup',
  'select-4' : 'errors',
  'select-5' : 'customization',
  'select-6' : '6'
};


$('[id^=select-]').on('focus', function(e) {
    $category_select.val(values[this.id]);
    updateSupport($categorychoice.val());
});