Jquery javascript在页面加载时调用单击处理函数,而不传递事件对象

Jquery javascript在页面加载时调用单击处理函数,而不传递事件对象,jquery,javascript-events,javascript,Jquery,Javascript Events,Javascript,我有一个函数,它希望单击事件对象作为参数。 比如说 toggle: function (e) { //does all the required work and then calls cancelEvent this.cancelEvent(e);//IMPORTANT TO HANDLE LOCAL ANCHORS }, cancelEvent:function(e) { if (!e) e = window.event; if (e.preventDe

我有一个函数,它希望单击事件对象作为参数。 比如说

toggle: function (e) {
//does all the required work and then calls cancelEvent

this.cancelEvent(e);//IMPORTANT TO HANDLE LOCAL ANCHORS
    },


cancelEvent:function(e) {
    if (!e) e = window.event;
        if (e.preventDefault) {
        e.preventDefault();
                  } else {
            e.returnValue = false;
                  }
    },
我需要调用页面加载上的切换功能

我尝试在不传递事件参数的情况下调用它。但是,这样做会破坏预期的功能,所有内容都将无法编辑

我是否可以获取当前事件对象并将其传递给函数

还是应该将加载事件附加到事件侦听器

请告诉我出路是什么


感谢您的时间:)

是的,您可以使用jQuery创建事件:

var e = $.Event('click');
$element.trigger(e); // Triggers click event on element
$事件上
。使用jQuery以以下方式触发单击事件也会为您创建一个事件对象:

$element.click();

甚至不需要使用jQuery。浏览器中的JavaScript包含本机事件对象。因此,您应该能够直接调用您的切换函数(假设您可以访问其中定义的范围),如下所示

var fakeEvent = new Event('click');
toggle(fakeEvent);
一定要彻底测试。如果您的代码依赖于某些属性值,而这些属性值只有在由真实用户单击触发时才会出现,则这可能不适用于您

更好的选择是重构,以便将页面加载和单击共享的功能分解为一个新函数,该函数可以从单击事件处理程序函数和页面加载逻辑调用