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