我有两个选项的选择框我需要在onchange中触发该函数以及需要调用所选选项的函数。如果我选择option1作为默认选项它会触发该函数但是如果我再次选择相同的选项1它没有任何意义。即使我再次选择了option1,我想调用该函数。
function hello() {
alert('hello');
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div >
<select onchange="hello()">
<option onclick="hello() value="1">Week 1</option>
<option value="2">Week 2</option>
</select>
</div>
&#13;
答案 0 :(得分:2)
试试这个(详情如下):
function hello() {
alert('hello');
}
<div>
<select onclick="hello()">
<option value="1">Week 1</option>
<option value="2">Week 2</option>
</select>
</div>
此处使用的不是onchange
onclick
,因此无论选择是否更改,函数都会调用每次点击。
但使用onclick
是一种不好的做法,因为它增加了一些开销。
答案 1 :(得分:1)
您应绑定mouseup
元素的select
事件处理程序。
当鼠标指针结束时,mouseup事件被发送到一个元素 元素和鼠标按钮被释放。
$("select").mouseup(function() {
var open = $(this).data("isopen");
if(open) {
alert('hello');
}
$(this).data("isopen", !open);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div >
<select>
<option value="1">Week 1</option>
<option value="2">Week 2</option>
</select>
</div>
答案 2 :(得分:0)
使用onclick
和onchange
是不好的做法。我建议使用以下内容来检测值的变化。此外,当您点击hello()
时,您编写的代码不会触发第二个Week 1
。
$("#select").change(function () {
if ($(this).val() == 1) {
console.log("you pressed one");
}
console.log("you changed the value");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div >
<select id="select">
<option value="1">Week 1</option>
<option value="2">Week 2</option>
</select>
</div>
答案 3 :(得分:0)
<div>
<select onmouseup="hello(this)">
<option value="1">Week 1</option>
<option value="2">Week 2</option>
</select>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
function hello(e){
var open = $(e).data("isopen");
if(open)
alert('hello' + $(e).val());
$(e).data("isopen", !open);
}
</script>