在以编程方式触发更改事件时为事件处理程序传递附加信息
Pass additional info for event handlers while triggering change event programmatically
$('#idofElement').change(function(e, additionalData) {
//event code
}
$('#idofElement').trigger('change', { someAdditionalData : 'value' });
正如您在上面看到的那样,我正在从代码中触发更改事件。我想将一些附加信息传递给事件处理程序。想知道这样的事情是否可行。
// 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);
}
你可以 jQuery.trigger
$(选择器).trigger("click", ["foo", "bar" ] );
您可以通过使用 Jquery 触发器传递一个变量,然后将您的事件处理程序开放给额外的变量来实现这一点。这是一个例子:
$("#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" />
您可以像这样使用 data() 方法存储数据:
$('#idofElement').trigger('change').data('someAdditionalData', value);
然后您可以像这样访问数据对象:
$('#idofElement').on('change', function(){
if(data = $(this).data('someAdditionnalData')) {
data...
}
});
如果您想删除对象数据,请执行
$('#idofElement').removeData('someAdditionnalData');
尽情享受吧:)
$('#idofElement').change(function(e, additionalData) {
//event code
}
$('#idofElement').trigger('change', { someAdditionalData : 'value' });
正如您在上面看到的那样,我正在从代码中触发更改事件。我想将一些附加信息传递给事件处理程序。想知道这样的事情是否可行。
// 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);
}
你可以 jQuery.trigger
$(选择器).trigger("click", ["foo", "bar" ] );
您可以通过使用 Jquery 触发器传递一个变量,然后将您的事件处理程序开放给额外的变量来实现这一点。这是一个例子:
$("#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" />
您可以像这样使用 data() 方法存储数据:
$('#idofElement').trigger('change').data('someAdditionalData', value);
然后您可以像这样访问数据对象:
$('#idofElement').on('change', function(){
if(data = $(this).data('someAdditionnalData')) {
data...
}
});
如果您想删除对象数据,请执行
$('#idofElement').removeData('someAdditionnalData');
尽情享受吧:)