- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试用 JavaScript 制作 Battleship 游戏以完成学校作业,但我一直在尝试创建对手 AI。当我点击网格中的单元格时,我创建了一个事件:
function addListener(evt) {
evt.addEventListener('click', function(){
//bunch of code
});
}
现在,每次我在嵌套的 for 循环中的网格中创建一个新单元格时,我都会运行此函数 addListener
:
yourCell.setAttribute('id', evt + String(a) + String(b));
addListener(yourCell);
我现在想要的是让对手在轮到我时运行这个点击事件,所以我写这个只是为了测试 fireEvent
函数:
function enemyTurn() {
document.getElementById('yourGrid00').fireEvent('onclick');
}
根据第二个代码示例,我将单元格的 ID 设置为 'yourGrid00'
,我在运行 JavaScript 代码后通过检查 html 代码确认了这一点,并且函数enemyTurn()
永远不会在每个单元格都被创建并分配一个 ID 之前运行。
我不明白的是,我在 fireEvent
行收到以下错误:
Uncaught TypeError: undefined is not a function.
有人知道我做错了什么吗?
最佳答案
fireEvent
是一种非常古老的方法,仅在 Internet Explorer 8 及更低版本上受支持。您应该改用 dispatchEvent
如果您想处理最新的浏览器。
Dispatches an
Event
at the specifiedEventTarget
, invoking the affectedEventListeners
in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) apply to events dispatched manually withdispatchEvent()
.
您必须手动创建 Event
- 您不能只调用 dispatchEvent('onclick')
。我从 this answer 中提取了以下代码的第一部分.
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0,
false, false, false, false, 0, null);
function enemyTurn() {
document.getElementById('yourGrid00').dispatchEvent(evt);
}
关于JavaScript fireEvent 不是函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26335963/
我有以下类 ProtokollEvent public class ProtokollEvent extends Event { //variable holds all devices in giv
我一直在尝试用 JavaScript 制作 Battleship 游戏以完成学校作业,但我一直在尝试创建对手 AI。当我点击网格中的单元格时,我创建了一个事件: function addListene
我是 Jest 和测试库的新手。我有一个 NavbarContainer 组件,它根据正在使用函数更改的变量 (menuOpen) 呈现一个或另一个按钮。我已经检查过变量在 fireEvent 之后更
我正在使用 extjs 3 构建自己的类(许可证问题) Ext.ux.MyClass = Ext.extend(Ext.Container, { initComponent: funct
一些简单的事件驱动代码。无论出于何种原因,我似乎无法将“onchange”作为参数传递给 fireEvent()。在 IE 7/8 中引发无效参数错误。这个项目需要是原生的。帮助不大? 自定义事件创建
🙂我正在学习 React 中的测试,但 fireEvent 不会改变我输入的值。不幸的是,我不知道为什么? 我正在渲染 BuyPlace 组件。在这个组件中,我有一个具有输入组件的表单(这些组件只是
我目前正在使用 Jest 测试输入& react-testing-library 。我正在尝试测试 onChange 函数是否在我的输入字段发生更改时触发。这是我的代码示例: const placeH
我有一个按钮,当在 Firefox/Chrome 浏览器中使用 jquery/javascript/Ext JS5 模拟点击这个按钮时。这个按钮会触发它的事件,但是在 IE11 中做同样的事情时,事件
知道下面这行的作用吗? 这里的“Popup”是什么事件? fireEvent('Popup','ok'); 最佳答案 事件通常分为两种类型。 DOMEvent 和 Class.Event。 最常见的是
我发现此链接涵盖了如何创建自定义 Java 事件。 http://www.exampledepot.com/egs/java.util/custevent.html 我不明白的是.. fireEven
我希望我的字段在失焦时提交。 (模糊事件)。触发提交的事件是一个 ENTER 键事件。所以我这样做了: outOfFocus: function(field, event) { console
我通过ajax调用一些文本文件,我需要将其保存在客户端,我找到了一个代码可以帮助我解决这个问题(它可以在Opera,Chrome,FireFox中工作),但在IE 8中它不需要工作时,我在 fireE
我想做什么 我想在某些测试期间将一些自定义属性传递给事件(使用 react-testing-library 和 jest)。我正在使用 fireEvent 函数。我从docs了解到第二个参数中的属性被
你如何制作 fireEvent itemclick商店加载后。 我有这个,但它不起作用: pcfstore.on('load', function(){ //auto select first
我正在测试 ExtJS4,但需要一些帮助... 我有这个 HTML 代码: 这个脚本代码: Ext.addBehaviors({ '#sendButton@click': function
我正在尝试使用 IE 的 fireEvent 方法提交表单。下面是一些简单的测试代码: function fireSubmit () { if (document.createE
我想用 leaflet 在 javascript 中模拟鼠标点击。 我有一张包含几个不同图层的 map 。一些激活弹出窗口。当我用鼠标单击某个项目时,会出现一个弹出窗口。 当我尝试执行以下代码时,它似
在我的应用程序中,Ti.App.addEventListener 执行了多次,甚至调用了一次 fireEvent。 我无法删除 fireEvent。如何删除创建的 fireEvent。 这是我的示例文
我需要在客户端图像 map 上使用 IE 模拟鼠标单击。哪个对象应该调用fireEvent() ?它不能简单地是对象,因为它可以被 2 个不同的 引用s。它不可能是因为我们需要一种方法来判断 img
我一直在尝试在 ExtJs 中的选项卡面板标题上创建上下文菜单,但遇到了一些问题。 最终,我希望它出现在右键单击和左键单击上;目前,右键单击时它看起来很好,但我也无法在左键单击上发生右键单击事件。 我
我是一名优秀的程序员,十分优秀!