“反应”:“^ 15.4.2”
我无法从jquery为使用React呈现的输入触发更改事件。 我需要这样做进行端到端的测试。
这是一个完整展示的沙箱:https://codesandbox.io/s/pp1k1kq3om 已经加载了jquery。
如果你在控制台中运行:$('#reactSlider')。val(50).change(),你会注意到没有调用更改处理程序。
在上面的沙箱中还有一个纯html滑块用于比较,一个按预期工作(调用更改函数)。
还试图发送像这样的新事件:
inv=addToInventory(inv, dragonLoot) #inv=None since addToInventory returns nothing
displayInventory(inv) #passing it None
for k, v in inventory.items(): #None.items() is obviously invalid, creates error
以上也不起作用(并且可以在纯html滑块上工作)。
var event = new Event('change')
var target = $('#reactSlider')[0];
target.dispatchEvent(event);
答案 0 :(得分:0)
好的,所以我发现了一种解决方法。 看起来onInput事件可以被触发就好了。在输入类型='范围' "输入"事件的触发与"更改"相同。是的,我能够切换它。
解决方法是:使用onInput而不是onChange并像这样触发它:
function triggerChange(selector,evt) {
let ev = new Event(evt, { bubbles: true });
let el = $(selector)[0]
el.dispatchEvent(ev);
};
triggerChange('#reactSlider','input');