gpt4 book ai didi

javascript - 手动创建 JavaScript 事件对象

转载 作者:行者123 更新时间:2023-12-02 20:32:12 24 4
gpt4 key购买 nike

假设我有以下代码:

$('#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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com