我有一个包含循环的防暴标签,如下所示。这个循环在另一个暴乱循环中(可能很重要吗?)。升级到riot版本2.3.0后,页面变得缓慢且无响应。发布说明说暴乱循环速度较慢但更可靠。
我发现当我从输入标签中删除id时,页面再次响应。在输入上没有id我认为我会重新编写onclick方法以识别以其他方式单击的节点。
这似乎不起作用,因为看起来我的onclick方法没有被注册。所以我的问题是:输入没有id或名称是非法的吗?或者我可能做错了什么?
<div class="card-action">
<div each={field in obj.fields} class="col s6" no-reorder>
<a>{ field.label }</a>
<form action='#'>
<input type="radio" id="always-{field.id}" checked={ parent.currentDisplayAlways[field.name] } onclick={ parent.onInterestingFieldCheckboxClicked }>
<label>Always</label>
<input type="radio" id="conditional-{field.id}" checked={ parent.currentDisplayConditional[field.name] } onclick={ parent.onInterestingFieldCheckboxClicked }>
<label>Conditional</label>
<input type="radio" id="never-{field.id}" checked={ parent.currentDisplayNever[field.name] } onclick={ parent.onInterestingFieldCheckboxClicked }>
<label>Never</label>
</form>
</div>
</div>
答案 0 :(得分:0)
我认为您可以绑定方法并在方法中添加您的ID或对象。如果要查找单击的项目,可以使用事件。
答案 1 :(得分:0)
拥有不含input
或id
属性的HTML name
绝对合法。要确定在Javascript中没有id
的情况下单击了哪个节点,您可以传递要调用this
关键字的函数,该关键字几乎就是该元素的整个DOM对象。按document.getElementById()
。所以,函数看起来像这样:
function firedAfterClicked(el) {
alert(el.checked); //Whatever you want it to do
}
输入看起来像这样:
<input type="radio" checked={ parent.currentDisplayNever[field.name] } onclick="firedAfterClick(this)">
该代码在单击时调用firedAfterClick
函数,并将输入作为DOM元素传递给this
关键字。
但是,我觉得真正的问题与你的Riot代码有关。取出id
属性似乎更像是一种临时解决方法而不是真正的解决方案。