Вы привязываетесь к элементам на основе их оригинальных идентификаторов. Если вы хотите, чтобы привязки следовали за изменяющимися идентификаторами, вы должны использовать делегирование событий.
$('#selector').change(function() {
$('#1,#2').attr('id', $(this).val());
});
$(document).ready(function() {
$(document).on("keyup", '#1', function() {
alert("OPTION 1 SELECTED");
});
$(document).on("keyup", '#2', function() {
alert("OPTION 2 SELECTED");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select id="selector">
<option>1</option>
<option>2</option>
</select>
<input id="1" type="text">
Но это кажется странным способом сделать это. Почему бы просто не использовать один обработчик, который
alert("Option " + $("#selector").val() + " selected");