Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery:如何禁用图像';加载时是否有单击功能?_Javascript_Jquery - Fatal编程技术网

Javascript Jquery:如何禁用图像';加载时是否有单击功能?

Javascript Jquery:如何禁用图像';加载时是否有单击功能?,javascript,jquery,Javascript,Jquery,使用以下选项将不起作用: $('div#menuBar,#goLeftBtn,#goRightBtn').attr('disabled', true); 在文档中,准备好了吗 有什么想法吗? 谢谢 编辑: 我的html基本上是这样的: <div id="floatRight"> <img src="./images/all_left.png" id="goAllLeft" class="arrow" /> <img src="./i

使用以下选项将不起作用:

$('div#menuBar,#goLeftBtn,#goRightBtn').attr('disabled', true);
在文档中,准备好了吗

有什么想法吗? 谢谢

编辑:
我的html基本上是这样的:

  <div id="floatRight">
       <img src="./images/all_left.png" id="goAllLeft" class="arrow" />
       <img src="./images/left.png" id="goLeft" class="arrow" />
       <img src="./images/right.png" id="goRight" class="arrow"/>
       <img src="./images/all_right.png" id="goAllRight" class="arrow" />
    </div>
<script type="text/javascript">
    var loaded = false;
    $(function(){
        loaded = true; // page done loading
    });

    function DoMenuStuff()
    {
        if(loaded) { /* do stuff */ }
    }

    function GoLeft()
    {
        if(loaded) { /* do stuff */ }
    }

    function GoRight()
    {
        if(loaded) { /* do stuff */ }
    }
</script>


我知道这些并不是上面jquery代码中的确切图像名称,但这就是我所有img的基本设置方式&对于特定的代码行,我只需要禁用这些img

在加载文档之前,您不能绑定单击事件,而不是在加载时尝试禁用

如果这些都是没有被锚定标签包装的图像,你可以很容易地完成这项工作

<img id="menuBar" />
<img id="goLeftBtn" />
<img id="goRightBtn" />
您始终可以执行以下操作:

  <div id="floatRight">
       <img src="./images/all_left.png" id="goAllLeft" class="arrow" />
       <img src="./images/left.png" id="goLeft" class="arrow" />
       <img src="./images/right.png" id="goRight" class="arrow"/>
       <img src="./images/all_right.png" id="goAllRight" class="arrow" />
    </div>
<script type="text/javascript">
    var loaded = false;
    $(function(){
        loaded = true; // page done loading
    });

    function DoMenuStuff()
    {
        if(loaded) { /* do stuff */ }
    }

    function GoLeft()
    {
        if(loaded) { /* do stuff */ }
    }

    function GoRight()
    {
        if(loaded) { /* do stuff */ }
    }
</script>

var-load=false;
$(函数(){
loaded=true;//页面加载完成
});
函数DoMenuStuff()
{
如果(已加载){/*do stuff*/}
}
函数GoLeft()
{
如果(已加载){/*do stuff*/}
}
函数GoRight()
{
如果(已加载){/*do stuff*/}
}
将一直工作,直到您准备好激活它


或者实际上,为什么不在加载一个点击事件之前不附加它呢?

这实际上是可行的,这意味着这将为
\menuBar
\goLeftBtn
\goRightBtn
添加一个
禁用的
属性
不幸的是,这无助于取消
事件处理程序
,因为
不能变为“
禁用

因此,您需要移除/解除绑定处理程序本身。这同样取决于您如何绑定click事件。如果使用
jQuery
,可以使用
.unbind()


如果您使用的是
内联事件处理程序
,则需要删除或修改它,以防止执行单击处理程序。

您可以在页面上放置一个
,其位置绝对覆盖整个视口,并使其透明但具有大的z索引。这将阻止所有点击进入真正的页面元素。在您的文档“加载”处理程序中,使“裹尸布”消失(或使其“显示:无”)。

您在这里谈论的是什么“单击功能”?它是您自己的事件处理程序,还是您的“图像”实际上是“图像”类型的元素?你的问题中没有提供太多的信息。点击功能本身与此无关。单击图像时,它会执行许多不同的操作。我只是想知道如何禁止用户在页面加载之前单击图像。加载后,我希望他们能够单击它。另请注意:“div#menuBar”应该只是“#menuBar”,因为id“menuBar”在页面上无论如何都必须是唯一的。省去标记名会快一点,因为jQuery会检查标记名,即使它有点没用。你能发布一些HTML吗?我想看看您的
标记是否被包装在
中,我猜它们是这样的。“只是在加载之前不要附加单击事件”+1单击事件不在$(文档)中。就绪或$(窗口)。完全加载它就在我的主代码中。我不想将其添加到$(window).load部分,因为我在该部分中加载了太多其他内容,这会降低我的页面速度。将处理程序直接放在代码中通常被视为讨厌的@Jenn,并将它们放在“ready”中处理程序不会减慢您的代码速度-浏览器已经必须处理它们被填充到标记中的问题,因此它仍然在做同样的工作。我同意Pointy,但如果出于某种原因您无法接触到该代码,那么上面的代码段肯定会工作。谢谢!返回错误就成功了。我在window.load部分添加了一个return true以使其再次工作。感谢您的帮助解除绑定处理程序的另一种方法是将一些状态标志与图像元素关联,并在文档(或每个图像)“加载”事件处理程序中,将状态标志设置为“已启用”。然后,“单击”事件的事件处理程序只需在执行任何操作之前检查标志,如果标志未启用,则返回
false
。我尝试在中解除它的绑定,但这会阻止它在页面加载后工作。我完全同意。我认为这是最好的方法。jQuery UI对话框就是这样使对话框成为模态的。我唯一的问题是,我的代码要求页面上的第一个元素是第一个页面。。它自动给它一个“current”类,我在外部加载了页面div,因此如果我从javascript/jquery中插入一个加载div,或者仅仅在代码中插入一个直接div,它会弄乱页面div。。我希望这是有道理的!但我将继续尝试第一部分中的第一页。。显示杂志或书籍的封面图像,之后是单独分区中的所有其他页面图像。“裹尸布”分区可以位于标记中的任何位置,因为无论如何都要将其设置为“位置:绝对”。
$('div#menuBar,#goLeftBtn,#goRightBtn').click(function() { return false; });