我想使用单选按钮来控制页面的布局。按钮如下所示:
<form>
<label>
<input type="radio" name="layout" class='layout-controls' data-type='layout' data-value='one'>
One
</label>
<label>
<input type="radio" name="layout" class='layout-controls' data-type='layout' data-value='two'>
Two
</label>
</form>
我正在绑定这样的函数:
$('.layout-controls').on('click', function(event) {
var $btn;
$btn = $(event.target);
return doStuff($btn.data('type'), $btn.data('value'));
});
这一切都很好。
然后我尝试在绑定事件处理程序后将元素添加到页面的较高部分:
$("#message-area").html("<div><br><br><p>Please make a selection </p></div>")
这会导致单选按钮变得不可点击。一些观察:
- 像Visual Event这样的工具仍然可以在每个单选按钮上看到正确的事件处理程序,并触发它们
- 添加的 HTML 标签
message-area
越多,下面的单选按钮就越多,无法点击 - 感觉就像插入这些元素以某种方式在页面上“分流”了一些东西
- 而不是使用 JQuery 插入我尝试过的元素
getElementById
,innerHTML
但似乎没有任何区别
你能解释一下这里发生了什么吗?绑定事件处理程序后,我是否可以在页面上方插入 HTML?什么是安全可靠的方法来做到这一点?
编辑
所以事实证明,文本的插入是在单选按钮上分流一个流氓的、不可见的 SVG 画布(请参阅JSFiddle)。我发现这个是因为我在标记中发现了它,这需要很长时间,因为页面上有很多元素。找到它后,我显然可以修复它,但我想知道,是否有一种工具可以使它可见或有助于调试它?