2016-05-18 106 views
-1

第一个问题在这里。我有点紧张打破冰块,请放纵我刚刚完成CodeAcademy JS课程。什么(function(){})();语法工作?

在下面的代码中,我发现切换了一些#element,我猜它将我的class.property从其初始状态切换到“block”,并从“block”切换到其初始状态。如我错了请纠正我。但是,如果我不是,有人可以向我解释这是如何执行的?

class.property === 'value' ? '' : 'value'; 

Question Mark in JavaScript - 条件?值,如果真:值,如果假

此时我明白'等于“无”,这是有道理的。然后它最终通过这个属性条件value-if-true和value-if-false到我的#element(这是用一些onclick()触发的。但是如果现在我想让我的函数也触发一些段落位置:?

我想补充这一点,但它失败了我也就是为什么使用(函数(){})()不理解;

(function (style) { 
    style.display = style.display === 'fixed' ? 'absolute' : 'fixed'; 
})(document.getElementById(section).style); 

这里是原代码:

function toggledisplay(elementID) { 
    (function (style) { 
     style.display = style.display === 'block' ? '' : 'block'; 
    })(document.getElementById(elementID).style); 
}; 
+0

这是可怕的代码。它应该只是'var style = document.getElementById(elementID).style;' – Bergi

+0

不确定问题是什么? OP的'js'不会返回预期的结果吗? – guest271314

+0

你使用的是一个[条件(三元)运算符](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) –

回答

1

fixedabsoluteposition值不是display

function toggledisplay(elementID) { 
 
    var style = document.getElementById(elementID).style; 
 
    style.position = style.position === 'fixed' ? 'absolute' : 'fixed'; 
 
};
body { 
 
    position: relative; 
 
} 
 
#mydiv { 
 
    top: 50px; 
 
    left: 80px; 
 
    min-height: 100px; 
 
    width: 100px; 
 
    background-color: lightgrey; 
 
}
<button onclick="toggledisplay('mydiv')">Toggle</button> 
 
<div id="mydiv"></div>

注:有没有真正的需要有IIFE功能,你可以简单地用一个变量来引用style财产

+0

您能否在第一个函数声明中删除不必要的函数声明。没有理由调用这样的匿名函数,这是一种糟糕的编程习惯。 –

+1

@AndrewBonsall是的,保留它只是因为OP有它 –

相关问题