Javascript 单击关闭Div在Chrome中不起作用,但在所有其他浏览器中都起作用

Javascript 单击关闭Div在Chrome中不起作用,但在所有其他浏览器中都起作用,javascript,jquery,joomla1.7,Javascript,Jquery,Joomla1.7,我刚刚为一个客户建立了一个Joomla网站,当然在发布当天,我遇到了Chrome浏览器在点击时没有关闭指定div的问题。我已经在其他浏览器中进行了测试,效果很好。我有没有办法重写这段代码,让它在Chrome上工作。。当然还有其他人 一段时间后,我将关闭一个播放flash动画的部门 JavaScript: <script> $(document).ready(function() { $("#flashcntr").click(function() {

我刚刚为一个客户建立了一个Joomla网站,当然在发布当天,我遇到了Chrome浏览器在点击时没有关闭指定div的问题。我已经在其他浏览器中进行了测试,效果很好。我有没有办法重写这段代码,让它在Chrome上工作。。当然还有其他人

一段时间后,我将关闭一个播放flash动画的部门

JavaScript:

<script> 
    $(document).ready(function() {
        $("#flashcntr").click(function() {
            setTimeout(function() {
                $("#flashcntr").addClass("hide");
            }, 2000); 
        });
    });
</script>

$(文档).ready(函数(){
$(“#flashcntr”)。单击(函数(){
setTimeout(函数(){
$(“#flashcntr”).addClass(“隐藏”);
}, 2000); 
});
});
头脑中的风格:

<style type="text/css">
    .hide  { display: none !important;}
</style>

.hide{display:none!重要;}

请帮忙!:)松开头发:(

您是否可以选择将其从DOM中删除?或者您是否可以让用户选择“稍后将其带回来”并重新加载页面

你可以试试:

 jQuery(document).ready(function($) {
     $("#flashcntr").click(function() {
          setTimeout( function() {
                      $("#flashcntr").remove();
                    }, 2000);
     });
 });
这会将其从DOM中完全删除。如果您想让他们选择将其带回来,您可以通过Ajax加载一个片段并将其插入回去:

 $("#putitback").click(function() {
     $.get("myflash.html").appendTo("#somediv");
 });

我发现为了让Chrome像所有其他浏览器一样工作,我经常不得不做一些复杂的事情。

不确定您是否尝试过jQuery隐藏功能,但它是这样的:

$(document).ready(function() {
    $("#flashcntr").click(function() {
        setTimeout(function() {
            $("#flashcntr").hide();
        }, 2000); 
    });
});
style="z-index:-1; position:relative; visibility:visible;"
如果这仍然不起作用,我会尝试在Chrome中使用Developer->Javascript控制台并放入
$(“#flashcntr”).hide();
,看看它是否隐藏了按钮

如果这样做行得通,那么您可以从那里添加一个控制台日志,查看您是否正在将其添加到.click函数中。console.log语句将显示在javascript控制台中

$(document).ready(function() {
    $("#flashcntr").click(function() {
        console.log('button clicked');
        setTimeout(function() {
            $("#flashcntr").hide();
        }, 2000); 
    });
});
$(“#flashcntr”).addClass(“hide”)
最好是
$(“#flashcntr”).hide()

编辑: 您的flash对象似乎位于
#flashcntr
元素上方。通过DOM编辑器,我将
flashcntr
的宽度设置为1024px,并将bg颜色设置为#f0f,以便您可以看到可单击的区域。然后单击它,它在两秒钟超时后隐藏

我想我会确保flash对象上的
z-index
设置为比
flashcntr
元素更低的索引

edit2:要达到您想要的效果,请将flash对象的
位置设置为
相对
,并将
z-index
设置为-1(即负一)。然后您应该能够单击
flashcntr
元素,因此flash对象的样式属性如下所示:

$(document).ready(function() {
    $("#flashcntr").click(function() {
        setTimeout(function() {
            $("#flashcntr").hide();
        }, 2000); 
    });
});
style="z-index:-1; position:relative; visibility:visible;"

它在JSFIDLE中运行良好…您也可以发布您的html吗?以下是链接,请在Chrome中尝试:。我尝试了所有建议,但在Chrome中仍然不起作用:(我假设URL是这样的:是的,URL是正确的。您要单击的元素位于flash对象下。我已经尝试了.hide函数。似乎它甚至无法读取setTimeout函数的代码。我可以使用z索引将其向前推进吗?我通过样式表上的object#flashid添加了这个元素,如果您单击它,flash不会停止。)n但它确实消失了。我确实需要窗帘打开……还有其他想法吗?嗯,我不知道你想保留flash动画。如果你想稍微模仿一下,你可以尝试用
.slideUp('fast')替换你的
.hide()
给帘幕一个升起的效果?或者,您可以查看外部接口JavaScript Actionscript交互,通过JS控制Flash对象。但是,如果“打开”按钮触发帘幕事件,为什么不将按钮的范围更改为整个Flash对象?