2012-04-17 88 views
0

我有一个CSS是要显示的div:内联;jQuery维护显示内联与div显示/隐藏

但是,当我使用jQuery显示/隐藏时,它将其更改为阻止/无。

如何防止此问题并在jQuery显示时保持内联显示?

+1

你可以不用'.css('display','inline')'而不是'show()'吗? – 2012-04-17 22:01:11

+0

可能是你可以使用类和切换使用jquery – Dhiraj 2012-04-17 22:01:14

+0

@AymanSafadi可能,只是寻找这种方法的解决方案! – benhowdle89 2012-04-17 22:02:00

回答

0

你不能这样做。

但是你根本就做的是使用

$('.your-element).css({'display':'inline'}); 

代替.show的()。

.hide()仍然可以照常使用。 现在想不出任何聪明的东西。

0

根据jQuery的docs

如果一个元素具有内嵌的显示值,则隐藏和显示, 它将再次被内联显示。

还有其他的事情吗?

演示:http://jsfiddle.net/jtbowden/JdJFJ/

这里是从源代码片段:

if (display !== "none" && !jQuery._data(elem, "olddisplay")) { 
    jQuery._data(elem, "olddisplay", display); 
} 

基本上,它存储原始display在内部数据,这是在show()恢复。类似但不同的代码在jQuery 1.0中一直存在。

0

@ benhowdle89看来,这已经可以用jQuery。你使用什么版本?

+0

应该没关系,这个功能存在于1.0中。 – 2012-04-17 22:14:06

+0

谢谢你的抬头。 – trickyzter 2012-04-17 22:15:47