javascript - 手动创建 JavaScript 事件对象

标签 javascript

假设我有以下代码:

$('#someid').click(function(event) { myFunction(event); });

function myFunction(event)
{
   // do something with event
}

我想测试myFunction()使用 eval 语句,而不执行类似使用 eval('$("#someid").click()') 的操作;

有没有办法在 JavaScript 中手动创建一个可以与 eval 语句一起使用的事件对象?

此外,如果 myFunction 仅用作事件处理程序,它是否可以始终假设 event不为空?

最佳答案

好吧,假设 JQuery 位于顶部,则事件对象不应该为 null。

事件对象是 IE 和其他人之间完全不同的生物,因此除非 JQ 100% 标准化该对象(我认为它从外观上构建了自己的事件对象),否则它的属性可能仍然与 JQuery 不同。不能在浏览器之间使用。为了制造您自己的事件对象,我想我只需使用 for x in 循环来查看里面的内容并构建一个模拟它的对象哈希。

所以在这个页面上类似:

$('#adzerk1').click( function(event){
    console.log('fakeEvent = {');
    for(x in event){ console.log( x + ':' + event[x] + ',\n')}
    console.log('}');
} );

$('#adzerk1').click();

将在 Firebug 的控制台框中返回该事件的所有属性及其值。然而,您必须使其递归并进行测试才能获取事件属性的所有内部结构,这些属性本身就是对象本身。否则,我已经将其设置为您所要做的就是将结果剪切并粘贴到 JS 中,然后删除右大括号之前的最后一个逗号。

关于javascript - 手动创建 JavaScript 事件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911640/

相关文章:

javascript - cy.click() 只能在单个元素上调用

javascript - CSS 或 javascript - 如何在浏览器具有不同的 DPI/缩放设置时修复外观?

javascript - 通过 Id 更改样式元素获取元素

javascript - 将输入字段添加到 div 的问题

java - 如何使用 jquery i18n 插件引用属性文件?

javascript - 如何像视差效果一样在鼠标滚动时更改所选 div 中的图像?

javascript - html canvas动画卡顿

javascript - 解析后的日期比较不起作用

javascript - Node : Auto-catch errors in Promise and call reject

Javascript使一个词不可编辑到文本区域