点击下拉项目上的事件 - jquery

时间:2012-08-28 07:03:34

标签: javascript jquery

我想从下拉列表项中选择元素时触发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. 
 });

基本上我只是不希望我的页面上有另一个按钮来捕获所有值,然后触发事件。

4 个答案:

答案 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");
}

Here is a working fiddle example

答案 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();}
});
});