4

我需要禁用我正在使用的图像,<a "href">直到页面完全加载。

我不能使用document.ready(),因为我需要在文档准备好之前禁用。

有人可以帮我吗?

问候, 格纳内什

4

3 回答 3

7

在您的 HTML 中将其定义为禁用:

<button disabled="disabled">My Button</button>

然后在页面加载时重新启用它。

这对于没有 Javascript 的用户来说具有破坏功能的缺点。另一种方法是在按钮后直接添加一小行代码:

<button id="myButton">My Button</button>

<script type="text/javascript">
    document.getElementById('myButton').disabled = true;
</script>

...然后在 document.load() 上重新启用

使用新信息编辑
它是input“图像”类型吗?如果是这样,上述仍然有效。如果不是,并且它是一个<a>带有图像的标签,我不建议按照公认的答案进行操作,抱歉。考虑到页面加载时间过长以至于您需要禁用链接,因此最后突然出现图像可能会令人沮丧或分散注意力。我建议的是:

<a href="whatever" onclick="return myLinkHandler();"><img src="..." /></a>
<script type="text/javascript">
    var myLinkHandler = function() {
        alert('Page not loaded.');  // or something nicer
        return false;
    };
</script>

然后在您的 document.ready 函数中,更改函数的定义:

myLinkHandler = function() {
    alert("Yay, page loaded.");
    return true;
};

或者,您可以在函数内部进行检查,以查看页面是否已加载。

var documentReady = false;
function myLinkHandler() {
    alert (documentReady ? "Ready!" : "Not ready!");
    return documentReady;
}

document.onload = function () { // or use jQuery or whatever
    documentReady = true;
};
于 2009-04-09T04:34:18.820 回答
5

在图像的情况下,只需在<img>标签中设置样式为 display:none ,然后使用其他建议删除 CSS 属性或更改它:

$(document).ready(function(){ $("#myImage").css("display","block"); });

这样,在文档准备好之前,图像甚至不会出现,然后用户可以单击它。如果您需要加倍努力,请按照其他建议执行并隐藏/禁用标签中的链接并使用 jQuery 显示/启用它。

于 2009-04-09T05:00:33.283 回答
2

使用 jQuery 的完整代码示例:

<input type="button" value="My Button" id="mybutton" disabled="disabled" />
<script type="text/javascript">
  $(document).ready(function() { $('#mybutton').removeAttr('disabled'); });
</script>
于 2009-04-09T04:37:08.050 回答