一些javascript代码不工作-事件处理程序'onclick'中的if()语句
some javascript code doesn't working - if() sentence in event-handler 'onclick'
var head = document.getElementById('head');
var navMain = document.getElementById('navMain');
var navLinks = document.getElementsByClassName('navLink');
var floatEnder_1 = document.getElementById('floatEnder_1');
var iMainContents = document.querySelector('iframe#iMainContents');
// function change class of #head
function changeHeadClass(from, to) {
if(head.className === from) {head.className = to;}
};
// event : click #navMain
navMain.onclick = function(){
changeHeadClass('head','head_small');
floatEnder_1.style.display = 'none';
if(iMainContents.style.display == 'none') {
iMainContents.style.display = 'initial';
};
}
请注意以上代码。我试图做不引人注目的js编码,但它比在html中插入js事件代码更困难。
当你看到上面的代码时,大多数代码都工作得很好。但只有一句话,if(iMain...)
不工作。我看了"javascript定义指南5"和浏览器控制台报告,但找不到问题的原因…
http://jsfiddle.net/40ee6ady/
我在上面写了代码。
您可以使用iMainContents.offsetParent === null
或window.getComputedStyle(element)
,
if(iMainContents.offsetParent === null) {
iMainContents.style.display = 'initial';
}
或
if(window.getComputedStyle(iMainContents).display == 'none') {
iMainContents.style.display = 'initial';
}
演示第一个选项在性能方面要比第二个选项好得多
没有人知道问题的原因。
所以我绕道使用jquery的'show()'函数。
下面的是代码
$(iMainContents).show();
我想你已经解决了这个问题。
<script>
window.onload = function() {
var head = document.getElementById('head');
var navMain = document.getElementById('navMain');
var iMainContents = document.querySelector('iframe#iMainContents');
function changeHeadClass(from, to) {
if(head.className === from) {
head.className = to;
}
};
navMain.onclick = function(){
changeHeadClass('head','head_small');
if(iMainContents.style.display === '') {
iMainContents.style.display = 'initial';
};
}
}
</script>
将代码改为
if(iMainContents.style.display == '') {
iMainContents.style.display = 'initial';
};
因为display =none
在style.display
中会显示"。
相关文章:
- 使用Javascript中的onclick方法
- 让粒子出现在p5.js中的OnClick函数中
- jQuery相当于Ajax调用中的onclick
- 来自jquery的.append中img标记中的onclick属性
- 在php中,使用正则表达式的函数中的Onclick事件
- HTML中的onclick事件<选择>无法运行Chrome和Safari
- 纯JavaScript中的Onclick滑块 - 事件不会改变CSS值
- 如何从 HTML 中的 onclick 调用 ASP 函数
- 如何在 Javascript 中的 onClick 事件中重新加载选择标记选项
- 将引号传递给 Javascript 函数中 html 元素中的 onclick 事件
- 我可以在 Javascript 中的 onclick 中的“this”之后插入字符串吗?
- 将多个操作传递给反应引导按钮中的 onClick 事件
- 是否可以在 HTML 中的“onclick”上运行.exe或.bat文件
- JavaScript 中的 Onclick 事件
- 不带jQuery的html日期选择器中的OnClick事件
- 使用jquery中的onclick事件更改HTML属性值
- 将对象作为参数传递给手把模板中的onclick方法
- 如何在一个onclick函数中添加两个响应?html中的onclick是
- 在组合框中的 OnClick 事件上传递两个变量
- html中的onclick在ios7_0用户代理中不起作用