2017-06-28 62 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'); 

享受:)

相關問題