显然一个被禁用的没有被任何事件处理
有没有解决此问题的方法?
<input type="text" disabled="disabled" name="test" value="test" /> $(':input').click(function () { $(this).removeAttr('disabled'); })
在这里,我需要单击输入以启用它。但是,如果我不激活它,则不应发布输入。
禁用的元素不会触发鼠标事件。大多数浏览器会将事件从禁用元素传播到DOM树,因此事件处理程序可以放在容器元素上。但是,Firefox不会表现出这种行为,当您单击禁用的元素时,它根本不执行任何操作。
我想不到更好的解决方案,但是,为了完全兼容跨浏览器,您可以在禁用的输入之前放置一个元素,然后单击该元素。这是我的意思的示例:
<div style="display:inline-block; position:relative;"> <input type="text" disabled /> <div style="position:absolute; left:0; right:0; top:0; bottom:0;"></div> </div>
jq:
$("div > div").click(function (evt) { $(this).hide().prev("input[disabled]").prop("disabled", false).focus(); });