发送模拟点击的参数

时间:2015-08-10 09:41:32

标签: jquery

如何在点击时发送参数?

// initiate the button
$('#btn').click(function(e){
    console.log(e.data);
});

// later on I need to simulate a click with parameter
$('#btn').click({
    param : 'simulated click'
});

3 个答案:

答案 0 :(得分:1)

为什么我们不能尝试使用这样的.data()

$('#btn').click(function(e){
    console.log($(this).data("param"));
});

$('#btn').data("param",{param : 'simulated click'}).click();

答案 1 :(得分:1)

您可以使用trigger()方法将额外的参数传递给函数处理程序:

// initiate the button
$('#btn').click(function(e, data){
    console.log(data);
});

// later on I need to simulate a click with parameter
$('#btn').trigger('click',{
    param : 'simulated click'
});

但如果您的目标只是检查是否以编程方式触发了某个事件,则可以检查:

// initiate the button
$('#btn').click(function(e){
    if(e.isTrigger) {
        console.log('simulated click');
    }
});

答案 2 :(得分:0)

您可以使用$.trigger()执行此操作,如下所示:

$('#btn').click(function(e) {
  console.log(e.param);
});

$('#btn').trigger({
  type: "click",
  param: "simulated click"
});
// => 'simulated click'
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Click me</button>