Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以动态修改事件对象?jQuery触发器()/bind()_Javascript_Jquery - Fatal编程技术网

Javascript 是否可以动态修改事件对象?jQuery触发器()/bind()

Javascript 是否可以动态修改事件对象?jQuery触发器()/bind(),javascript,jquery,Javascript,Jquery,我想知道是否可以向传递给bind()事件处理程序函数的事件对象添加属性。我有一段代码,这段代码绑定到“mousedown”。我想明确地触发这个事件。问题是bind()处理程序需要鼠标触发事件时提供的一些事件属性;即“pageX”和“pageY” 我知道我可以将附加参数作为数组传递到Trigger()中,但我不希望更改bind()代码。这可能是不可能的 我想触发下面的处理程序并“伪造”pageX。这能做到吗 currentObj.bind("mousedown", function(e) {

我想知道是否可以向传递给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);                    
            });
您可以创建自己的,然后使用以下功能发送:

var e = new jQuery.Event("mousedown");
e.pageX = 'fake value';
currentObj.trigger(e);
以下是一种方法:

    $(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);
    }