我需要更改输入文本的ID
,以便在Jquery中使用keyup
的两个函数,例如,我选择选项编号1
,并在脚本上为id1
和编号2
编写一个函数keyup,以了解它是否有效。我使用alert
,但始终使用默认设置的id。
$('#selector').change(function() {
$('#1,#2').attr('id', $(this).val());
});
$(document).ready(function() {
$('#1').keyup(function() {
alert("OPTION 1 SELECTED");
});
$('#2').keyup(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">
怎么了?
您根据元素的原始ID绑定到元素。如果希望绑定遵循不断变化的ID,则必须使用事件委派。
$('#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");
希望这将有助于
$(document).ready(function() {
$('#selector').change(function() {
$('#1,#2').attr('id', this.value);
});
$('input[type="text"]').keyup(function() {
alert("OPTION "+$(this).attr('id')+" SELECTED");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select id="selector">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input id="1" type="text">