2016-12-07 77 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); 
});