【发布时间】:2012-04-22 03:24:26
【问题描述】:
以下代码在 FF 中有效,但在 IE9 中无效:
// turn on the 'image file upload' field and its label
document.getElementById('itemImageId').disabled = false;
document.getElementById('labelForImageUploadID').style.color = "black";
这是带有标签和文件输入的 HTML:
<label for="itemImageId" style="color: silver" id="labelForImageUploadID">Item image
(select to change the item's current image)</label>
<input type="file" size="100px" id="itemImageId" disabled="disabled"
name="theFileUpload"></input>
** 编辑 ** 上面的标签和文件上传标签嵌套在下面的 div 中——我添加了这个,这样你就可以看到鼠标点击是如何处理的。 handleRowClick() 函数有上面试图将文本变黑的 Javascript 代码:
<div class="itemlistRowContainer" id="topmostDiv_ID" onclick="handleRowClick(this);"
onmouseover="handleMouseOver(this);" onmouseout="handleMouseOut(this);"
ondblclick="handleDblClick(this);">
所以当这个标签第一次出现在页面上时,它的颜色是正确的——由于内联颜色样式,它是银色的。
然后上面的 Javascript 代码在鼠标点击时执行。
在 Firefox 中,Javascript 代码将标签文本变为黑色,并启用文件上传控制。
但是在 IE9 中标签的文本保持灰色。
IE9不支持style.color = "somecolor"动态控制label标签的颜色吗?
我查看了其他一些帖子,我发现的唯一怪癖是,如果您启用/禁用 动态发生,以确保标签在 IE9 中已启用,然后再尝试更改其颜色。
这不是一个因素,因为代码永远不会禁用 label 标记。
也不只是这个label标签——页面上所有的label标签都没有 变黑但仅在 IE9 中 - 在 FF 中一切正常。
我是否缺少“陷阱”或技巧?
【问题讨论】:
-
你是怎么绑定点击事件的?
-
抱歉耽误了时间——我在上面的代码中添加了鼠标点击处理程序。
-
似乎工作正常:jsfiddle.net/pP3dd。页面中可能还有其他内容。
标签: javascript html css