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);
一定要彻底测试。如果您的代码依赖于某些属性值,而这些属性值只有在由真实用户单击触发时才会出现,则这可能不适用于您
更好的选择是重构,以便将页面加载和单击共享的功能分解为一个新函数,该函数可以从单击事件处理程序函数和页面加载逻辑调用