我想知道是否可以向传递给bind()事件处理函数的事件对象添加属性。我有一段代码,这就是“mousedown”。我想明确地触发这个事件。问题是bind()处理程序需要一些鼠标触发事件时提供的事件属性;即'pageX'和'pageY'。
我知道我可以将其他参数作为数组传递给Trigger(),但我宁愿不更改bind()代码。这可能是不可能的。
我想触发下面的处理程序并'伪造'pageX。可以这样做吗?
currentObj.bind("mousedown", function(e) {
var handleElement = currentObj.find(".HwSliderHandle");
var offsetMultiplier = calculateOffsetMultiplier();
var newPosition = Math.round(e.pageX/offsetMultiplier) - sliderInfo.contextOffset.left;
moveHandleTo(handleElement, newPosition);
});
答案 0 :(得分:3)
您可以创建自己的event object,然后使用trigger()功能发送它:
var e = new jQuery.Event("mousedown");
e.pageX = 'fake value';
currentObj.trigger(e);
答案 1 :(得分:0)
这是一种方法:
$(document).ready(DocReady);
function DocReady()
{
$("#test").bind("mousedown", mouseDown);
}
function mouseDown(e)
{
alert("X: " + e.pageX + ", Y: " + e.pageY);
}
function fakeIt()
{
var e = { pageX: 40, pageY: 50 };
mouseDown(e);
}