2011-09-08 71 views
12

我想将以下JS更改为Jquery。但我不知道如何将参数传递给Jquery中的点击事件。任何人都可以帮助我,谢谢!如何将参数传递给Jquery中的单击事件

<script type="text/javascript"> 

function display(id){ 

    alert("The ID is "+id); 
    } 
</script> 

<input id="btn" type="button" value="click" onclick="display(this.id)" /> 

回答

8

你并不需要传递的参数,你可以使用.attr()方法

$(function(){ 
    $('elements-to-match').click(function(){ 
     alert("The id is "+ $(this).attr("id")); 
    }); 
}); 
4
$('elements-to-match').click(function(){ 
     alert("The id is "+ this.id); 
    }); 

没有必要把它包在一个jQuery对象得到它

20

更好的方法:

<script type="text/javascript"> 
    $('#btn').click(function() { 
     var id = $(this).attr('id'); 
     alert(id); 
    }); 
</script> 

<input id="btn" type="button" value="click" /> 

但是,如果你真的需要做的点击处理程序内嵌,这将工作:

<script type="text/javascript"> 
    function display(el) { 
     var id = $(el).attr('id'); 
     alert(id); 
    } 
</script> 

<input id="btn" type="button" value="click" OnClick="display(this);" /> 
4

作为DOC说,你可以把数据作为下一个处理程序:

// say your selector and click handler looks something like this... 
$("some selector").on('click',{param1: "Hello", param2: "World"}, cool_function); 

// in your function, just grab the event object and go crazy... 
function cool_function(event){ 
    alert(event.data.param1); 
    alert(event.data.param2); 

    // access element's id where click occur 
    alert(event.target.id); 
} 
相关问题