2016-12-07 72 views
0

我想将两个jQuery函数合并为一个。但我不知道如何。 我需要改变以将这两个功能合并为一个功能?将两个jQuery函数合并为一个

这里是代码:

$('#keyword').on('keyup', function (e) { 
    console.log(e.keyCode); 
    console.log($(this).text()); 
    $('input[name="q"]').val($(this).val()); 
    $('g-search').html($(this).val()); 
}); 

$(function() { 
    $('#title').on('keyup', function (e) { 
     console.log(e.keyCode); 
     console.log($(this).val()); 
     var title = $(this).val(); 
     $('span.title').text(title); 
     $('g-search').html(title); 
    }); 
}); 
+0

发布您的HTML代码。 – Sankar

回答

2

可以检查此琴jsfiddle

$('#keyword,#title').on('keyup', function (e) { 

     console.log(e.keyCode); 

     console.log($(this).text()); 

     $('input[name="q"]').val($(this).val()); 

     $('g-search').html($(this).val()); 

    }); 
1

你只需要你的两个Ids在同一event 之类的函数添加下面的代码。

$('#keyword,#title').on('keyup', function (e) { 
    //Your code 
}) 
+0

但后来我写在两个输入字段在相同的跨度 – Leon

+0

如果任何东西应该分开功能,那么我会建议你只使用绝望的功能。当功能 – Bharat

4

在不同类型的事件的情况下,您可以像这样在单个函数中编写逻辑。

$(function() { 
    $('#keyword').on('keyup', function (e) { 
     anotherFunction(this); 
    }); 
    $('#title').on('keyup', function (e) { 
      anotherFunction(this); 
    }); 
}); 

function anotherFunction(val){ 

} 

或者你可以这样做。

$('#keyword,#title').on('keyup', function (e) { 


}); 
+0

的要求是一些很好的答案,但我不能写入不同的跨度容器时,常见的功能将是有用的。 – Leon

2

一个共同的类添加到每个元素

HTML:

<input class="key common-class" type="text" size="50" maxlength="63" id="keyword"/> 

<input class="url1 common-class" type="text" data-limit="60" size="50" maxlength="74" id="url"/> 

JS:

$('.common-class').on('keyup', function (e) { 
     //combined code 
     var val = $(this).val(); 
    if($(e.target).is('#keyword')) { 
    $('input[name="q"]').val(val); 
    } else { 
    $('span.title').text(val); 
    } 
    $('g-search').html(val); 
});