我想在用户点击按钮时运行change
事件。
$('#b1').on('click', function(){
$('#select_item').trigger('change');
});
$('#select_item').on('change', function(){
var jbyr = $(this).find('option:selected').val();
if(jbyr == 1){
alert('Option 1');
}
else if(jbyr == 2){
alert('Option 2');
}
else{
alert('Option 3');
}
});
我正在寻找的是当我点击按钮时,组合框将其选项从之前的1更改为2,然后触发select_item
更改脚本,以便显示alert('Option 2')
。
此外:
#b1
是一个按钮,不提交任何内容。它只是强制将组合框选项更改为选项2.当按钮单击更改组合框时,应该触发组合框更改事件。因此,用户不要触摸组合框
答案 0 :(得分:1)
这似乎是一个简单的例子做得很难。没有任何理由,因为您拥有两条订阅代码,以触发任何事件。所以不要这样做,只需将更改代码封装到一个新功能中即可。另外,我强烈建议您阅读Decoupling Your HTML, CSS, and JavaScript - Philip Walton @ Google Engineer。
$(document).ready(function() {
$('.js-alert').on('click', function() {
onSelectedChanged($('.js-select'));
});
$('.js-select').on('change', function() {
onSelectedChanged($(this));
});
function onSelectedChanged($element){
var jbyr = $element.find('option:selected').val();
if (jbyr == 1) {
alert('Option 1');
} else if (jbyr == 2) {
alert('Option 2');
} else {
alert('Option 3');
}
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="click me" class="js-alert" />
<select class="js-select">
<option value="1">Option 1</option>
<option value="2" selected>Option 2</option>
<option value="3">Option 3</option>
</select>
&#13;
答案 1 :(得分:0)
我不确定在change
上触发click
事件的编码需求......
“层叠事件” 肯定不是今年的想法。
我可以从这里说出你要定义一个函数来调用你喜欢的元素的click
或change
。
所以只需创建一个命名函数:
myFunction(){
//Do whatever...
}
然后在您喜欢的事件处理程序中调用myFunction()
:
$(element).on("click",myFunction);
或:
$(element).on("change",myFunction);
答案 2 :(得分:-2)
您需要像这样设置组合框的值。
$('#b1').on('click', function () {
$('#select_item').val(2);
$('#select_item').trigger('change');
});
$('#select_item').on('change', function () {
var jbyr = $(this).find('option:selected').val();
if (jbyr == 1) {
alert('Option 1');
} else if (jbyr == 2) {
alert('Option 2');
} else {
alert('Option 3');
}
});