我正在使用遗留代码,我偶然发现了这件艺术品:
//IE Hacks
if (navigator.appName == 'Microsoft Internet Explorer') {
$("label").live('click', function() {
$('#'+$(this).attr('for')).click().click().click();
});
}
// End IE Hacks
有人告诉我这是写的,因为标签并不总是在 IE 中工作,这个技巧修复了它。它也不适用于两个.click()
电话,但需要所有三个电话。
使用的 jQuery 版本是1.4.2
.
我想重构它以使用特征检测和更优雅的解决方案。
我在 Google 上查找 IE 中的标签问题,但偶然发现了隐藏输入的问题。
有谁知道这段代码解决了什么问题?
有没有更优雅的解决方案?
更新:
你认为这段代码没有可能解决的问题,我应该删除它吗?
更新 2:
我发现网站上的标签有问题。这是一段HTML:
<div class="remember-me">
<input type="hidden" name="remember" value="0">
<input type="checkbox" id="remember" name="remember" value="1" class="checkbox-input" rel="remember">
<label class="label-remember" for="remember">Keep me logged in</label>
</div>
此 HTML 代码是使用 Ajax 插入到页面中的,因此它可能与 kevmc 中描述的问题有关。
在 Internet Explorer 7 中单击标签不会选中复选框。相反,它聚焦标签(带有细虚线边框)。