Имею код, которые срабатывает на событие on('change keyup'. Нужно имитировать это событие, чтобы запустить этот код. Пробовала через триггер, понимаю, что он должен работать в связке с bind, но и вызов через него событие не видит. Да и менять EventListener не хотелось бы совсем. Есть ли возможность имитировать событие нажатия на клавиши?
$('#foo').on('change keyup', function(){
alert('Произошло событие change keyup')
});
window.onload = function(e){
function writeText(){
$('#foo').trigger('change keyup');
}
setTimeout(writeText, 500);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="foo" value="123">
Нужно одно событие в trigger передавать. Так работает:
$('#foo').on('change keyup', function(){
alert('Произошло событие change keyup')
});
window.onload = function(e){
function writeText(){
$('#foo').trigger('change');
}
setTimeout(writeText, 500);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="foo" value="123">
Нет такого события 'change keyup', есть два события 'change' и 'keyup', которые вы просто определили одновременно в конструкции on; и в trigger их вызывать следует отдельно, например:
$('#foo').on('change keyup', function(){
alert('Произошло событие change keyup')
});
window.onload = function(e){
function writeText(){
$('#foo').trigger('change'); // тут вызываем или change или keyup
}
setTimeout(writeText, 500);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="foo" value="123">
$(document).ready(function(){
$("#inp").trigger({type: 'input', which: 13, keyCode: 13});
});
$("#inp").on('input',function(){
alert("123");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="btn">test</button>
<input type="text" id="inp" />
Продвижение своими сайтами как стратегия роста и независимости