我想从下拉列表项中选择元素时触发click事件。每个点击事件应该是不同的,取决于下拉元素的值。
<select id="cmbMoreFunction" name="cmbMoreFunction" multiple="multiple">
<option value="0">ATM Event Status</option>
<option value="1">Statistics</option>
</select>
如果我点击“ATM事件状态”,则只会触发其特定的点击事件。
我试过了..但是没有用
$('#cmbMoreFunction select option').click(function()
{
//Depend on Value i.e. 0 or 1 respective function gets called.
});
基本上我只是不希望我的页面上有另一个按钮来捕获所有值,然后触发事件。
答案 0 :(得分:15)
使用select上的更改处理程序,读取它的值,然后决定该怎么做:
$('#cmbMoreFunction').change(function()
{
var selectedValue = parseInt(jQuery(this).val());
//Depend on Value i.e. 0 or 1 respective function gets called.
switch(selectedValue){
case 0:
handlerFunctionA();
break;
case 1:
handlerFunctionB();
break;
//etc...
default:
alert("catch default");
break;
}
});
function handlerFunctionA(){
alert("do some stuff");
}
function handlerFunctionB(){
alert("Do some other stuff");
}
答案 1 :(得分:5)
检查此JsFiddle
简单使用此代码 的 JQuery的:强>
$('#cmbMoreFunction').click(function(v){
console.log(v.target.value);
});
希望你的问题能解决。
答案 2 :(得分:2)
选项元素不会有点击事件。 Click事件仅与Select元素相关联,因此您必须将其应用于选择下拉列表。在触发select下拉列表事件的函数中,您可以检查各个选项并应用逻辑。
答案 3 :(得分:0)
您也可以使用javascript。例如
$document.ready(function(){
$('#cmbMoreFunction').change(function(){
var dataValue=document.getElementById('cmbMoreFunction').value;
if(dataValue==0){call functionFirst();}
else{call functionSecond();}
});
});