JavaScript编程上.click()不会在ReactJS元素中触发
JavaScript programmatically .click() is not triggered in ReactJS element
我正在尝试以编程方式单击react JS元素。
例如,请查看此链接:点击这里
我无法点击样品图片,这会改变产品的主图片。
我尝试了下面的代码:
document.querySelector('#product-selection-4476800 > section.np-sku-filters > div.np-circular-swatches.small > ul > li:nth-child(2) > a').click();
document.querySelector('#product-selection-4476800 > section.np-sku-filters > div.np-circular-swatches.small > ul > li:nth-child(2) > a > span > img').click();
两个都不工作。我也试过
function clickElement(el){
var ev = document.createEvent("MouseEvent");
ev.initMouseEvent(
"click",
window, null,
false, false, false, false,
0, null
);
el.dispatchEvent(ev);
}
元素仍然没有改变。
谢谢!
我找到了一个解决方案,从外部点击它的DOM的ReactJS元素。
var elm = document.querySelector('#product-selection-4476800 > section.np-sku-filters > div.np-circular-swatches.small > ul > li:nth-child(2) > a');
function triggerEvents(n, e){
var ev = document.createEvent('MouseEvents');
ev.initEvent(e, true, true);
n.dispatchEvent(ev);
}
triggerEvents(elm, "mouseover");
triggerEvents(elm, "mousedown");
triggerEvents(elm, "click");
triggerEvents(elm, 'mouseup');
并按预期工作
感谢所有人的时间和回复。:)
相关文章:
- ReactJS:onClick更改元素
- ReactJS - 元素类型无效错误
- ReactJS-目标随机元素
- 正在从ReactJS数组中删除Stateful元素
- reactjs传递多个元素
- ReactJS的dropzone元素无效
- ReactJS:仅当数组有值时才呈现元素
- 我可以在 ReactJS 中排除原始元素的子元素吗?
- Reactjs :使用输入元素时的不变冲突
- 触发 ReactJS 元素的 onClick 事件
- 使用 ReactJs 从元素访问输入值
- 在 ReactJs 中的文本区域元素内创建一个编号列表
- ReactJS 开关大小写错误 相邻的 JSX 元素必须包装在封闭标记中
- 在输入元素(Reactjs)中侦听的多事件
- 如果在映射函数中 reactjs 元素的内部循环
- ReactJS - 获取元素的高度
- 如何'重置'ReactJS元素
- 包含标签到reactjs元素的字符串
- JavaScript编程上.click()不会在ReactJS元素中触发
- 如何从.jsx脚本中调用ReactJS元素上的jQuery函数?