我在firefox上检索确切的css属性值(在'%'中)时遇到问题.
假设我们有这个非常简单的标记:
<div id="box">box</div>
Run Code Online (Sandbox Code Playgroud)
这个css:
#box{
width:200px;
height:200px;
left:10%;
position:absolute;
background:red;
}
Run Code Online (Sandbox Code Playgroud)
而我想找回左侧位置被JS(在"%")
使用mootools很简单(演示 - > http://jsfiddle.net/steweb/AWdzB/):
var left = $('box').getStyle('left');
Run Code Online (Sandbox Code Playgroud)
或jQuery(演示 - > http://jsfiddle.net/steweb/RaVyU/):
var left = $('#box').css('left');
Run Code Online (Sandbox Code Playgroud)
或者通过普通的js(演示 - > http://jsfiddle.net/steweb/tUAKA/):
function getStyle(el,styleProp){ //from ppk's quirksmode
var x = document.getElementById(el);
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return y;
}
var left = getStyle('box','left');
Run Code Online (Sandbox Code Playgroud)
但是如果你在firefox(8.0.1)上尝试它,你会发现结果不正确(应该是10%,但它是91px).问题是:这个较新版本的Firefox有没有错误?有谁知道这是一个已知的错误?难道我做错了什么?
谢谢 :)
更新:我也尝试过较旧的firefox版本,并且它不正确(它总是返回px值)..为了完整性,它在IE上正常工作
我刚刚完成了翻译(意大利语...对于懒得学英语的意大利开发人员:D)这篇伟大的文章(由Aaron Newton撰写)关于标题所指的主题:
在我这样做的时候,我有机会专注并深入理解这两个梦幻般的javascript框架的主要目标.
抛弃关于每个框架如何工作的所有细节等,我必须告诉我我更喜欢Mootools(我喜欢它的"冗长"以及它扩展原生JS的方式).
我在stackoverflow社区中有点新鲜,我注意到有多少jQuery"问题云"比Mootools更大.所以,我不知道是否只是人气或人们真的更喜欢jQuery而不是Mootools这一事实.
回答这个问题,我想问(如果你对这两个人都有经验,我认为这是一个非常好的话题,彼此面对面):
为什么你更喜欢jQ而不是moo,或者为什么你认为jQ比moo更强大?
谢谢!
一个月前,我接受了一些谷歌PTO成员的采访.其中一个问题是: 在js中递归反转一个字符串,并用大O表示法解释运行时间
这是我的解决方案:
function invert(s){
return (s.length > 1) ? s.charAt(s.length-1)+invert(s.substring(0,s.length-1)) : s;
}
Run Code Online (Sandbox Code Playgroud)
我觉得很简单.
而且,关于大写符号,我很快回答了O(n),因为运行时间线性地取决于输入. - 沉默 - 然后,他问我,如果你通过迭代实现它,在运行时间方面有什么不同?
我回答有时编译器将递归"转换"为迭代(一些编程语言课程记忆),因此在这种情况下迭代和递归没有差异.顺便说一句,因为我没有对这个特定问题的反馈,并且面试官没有回答"好"或"不",我想知道你是否同意我或者你是否可以解释我是否可能存在差异2种实现.
非常感谢和问候!
我正在尝试使用mootools来快速切换点击一些文本.但我似乎无法找到相当于jQuery的toggle()函数的Mootools.
我想要做的是如下:
$('a#id').toggle(
function() {
$(this).set('html', 'new text');
},
function() {
$(this).set('html', 'old text');
}
);
Run Code Online (Sandbox Code Playgroud)
我如何修改mootools的上述代码?
谢谢!