gdoronが指摘しているように (+1)、jQuery はイベント オブジェクトを提供します。ただし、必要に応じて明示的に作成して、jQuery では入力できない情報を入力することもできます。Event
オブジェクトを作成してに渡すことができますtrigger
。
以下は、デフォルトのイベント オブジェクトの使用と独自の作成の両方の例です。ソース
jQuery(function($) {
$(".test").click(function(e) {
display("Received click on target");
display("typeof e = " + typeof e);
if (e) {
display("e.type = " + e.type);
if (e.type === "click") {
display("Coords: (" + e.pageX + "," + e.pageY + ")");
}
}
});
//Create a new jQuery.Event object without the "new" operator.
var e = $.Event("click");
// Fill in more info
e.pageX = 42;
e.pageY = 27;
// Trigger an artificial click event
display("Issuing a click via <code>$('.test').trigger('click')</code>");
$('.test').trigger("click");
// Trigger an artificial click event
display("Issuing a click creating our own event object with more info on it.");
$('.test').trigger(e);
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});