2017-06-28 39 views
0
$('#idofElement').change(function(e, additionalData) { 
    //event code 
} 

$('#idofElement').trigger('change', { someAdditionalData : 'value' }); 

我正在从代码中触发更改事件,如上所示。我想传递一些额外的信息给事件处理程序。想知道这样的事情是否可能。以编程方式触发更改事件时传递事件处理程序的其他信息

+1

http://api.jquery.com/trigger/ –

+0

@JohanKarlsson我应该有RTFM – IsmailS

回答

1

你可以通过传递一个带有Jquery Trigger的变量来实现这一点,然后打开你的事件处理程序到额外的变量。这里有一个例子:

$("#foo").on("click", function(event, data1, data2) { 
 
    console.log(data1); //logs "hello" 
 
    console.log(data2); //logs "goodbye" 
 
}); 
 

 
$('input:button').click(function() { 
 
    $("#foo").trigger("click", ["hello", "goodbye"]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="foo" type="text" /> 
 
<input type="button" value="click me to trigger change event" />

0
// say your selector and click handler looks something like this... 

$("some selector").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); 
} 
0

你可以用jQuery.trigger

$(选择).trigger( “点击”,[ “富”, “酒吧”]);

1

可以存储与数据data()方法类似:

$('#idofElement').trigger('change').data('someAdditionalData', value); 

然后你就可以访问数据对象是这样的:

$('#idofElement').on('change', function(){ 
    if(data = $(this).data('someAdditionnalData')) { 
     data... 
    } 
}); 

如果你想删除对象数据,请做

$('#idofElement').removeData('someAdditionnalData'); 

享受:)

相关问题