如何在Jquery中将参数传递给click事件

时间:2011-09-08 15:47:05

标签: jquery

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

<script type="text/javascript">

function display(id){

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

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

4 个答案:

答案 0 :(得分:22)

更好的方法:

<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);" />

答案 1 :(得分:8)

您无需传递参数,您可以使用.attr()方法

获取该参数
$(function(){
    $('elements-to-match').click(function(){
        alert("The id is "+ $(this).attr("id") );
    });
});

答案 2 :(得分:7)

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 ); 
}

答案 3 :(得分:4)

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

无需将其包装在jquery对象中