Javascript 在所有浏览器中显示/隐藏DOM元素
我有一些非常简单的东西,但我不能使它在Webkit和Mozilla中正常工作 这是我的HTMLJavascript 在所有浏览器中显示/隐藏DOM元素,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我有一些非常简单的东西,但我不能使它在Webkit和Mozilla中正常工作 这是我的HTML <li style="padding-bottom: 10px;" class='product'> <span class ='handle' style="cursor:move; float:left; margin-top:40px; margin-right:8px; margin-bottom:30px; display:none;"> &l
<li style="padding-bottom: 10px;" class='product'>
<span class ='handle' style="cursor:move; float:left; margin-top:40px; margin-right:8px; margin-bottom:30px; display:none;">
<%= image_tag "page/arrow.png"%>
</span>
<table >
<tr style="border:5px; solid: #444">
<td class="product_contents" style="vertical-align: top;" >
<div class="product_contents" style="width: 480px; font-size: 100%; font-weight: bold; color: #333; margin-bottom: 10px; word-wrap: break-word; overflow: auto;">
STUFF HERE
</div>
<p class="product_contents" style="width: 480px; font-size: 93%; line-height: 150%; word-wrap: break-word; overflow: auto;">
MORE STUFF HERE
</p>
</td>
</tr>
</table>
</li>
这里没有什么特别的东西,它的工作原理和我在Firefox中所期望的一样。控制柄中的图像显示在左侧,它将内容向右移动,内容也会更改颜色和大小以匹配图像。完美的
但在Webkit中,它改变了颜色和大小,但没有位移。我想要实现的是非常基本的,有更好的方法吗?
我可以使用Jquery,但我不能使用任何插件 您可以通过使用CSS display属性并将其设置为none来隐藏元素
我不确定我是否正确理解了您的问题,但我建议尝试jQuery的显示/隐藏功能:
$(this).find(".handle").show();
$(this).find(".handle").hide();
这一款在Firefox中对我有效,但在Conkeror(令人惊讶)中失败,在SRWare Iron(基于Chrome的浏览器)中失败
问题似乎与表位于
元素中这一事实有关。出于某种原因,Firefox将此表视为内联元素,而其他浏览器视为块元素。由于它是一个块元素,因此表格会被推到下一行,而不会被移动,因为句柄位于上一行。将表的显示样式更改为内联表
解决了我的问题。这对我在Chrome上很有效:。如果将类添加到主题元素并修改类的样式规则,这可能会更有效。如果必须使用选择器,则至少获取一次对象并重新使用它:var el=$(此选项);el.查找(…);el.css(…)代码>等等。它在Chrome中对我不起作用。我试过你的小提琴,文字上出现了“图像”。如果你尝试使用firefox,你会看到它是如何出现在左边的。根据我的测试,完全不同,在Firefox4、Chrome、IE9和Opera中的工作方式相同。在Safari中,它出现在左侧。再说一次,我还没有试过用真实的图像。你说的“…在Mozilla中不能正常工作…”是什么意思?…它在Firefox中可以正常工作…”?如果我写的是“在Mozilla中不能正确工作”,我的意思是在Mozilla中正确工作。Firefox运行正常,我对chrome有问题。事实上,在jQuery中,它更像是$(…).get(0).style
。此外,为了让代码正常工作,您需要两个名为none
和block
的变量,其中包含的字符串的内容与放置在其中的相应变量的名称相同。。。或者您可以使用“无”
和“块”
而不是无
和块
。对此表示抱歉。我只是忘了引用。
$("element").style.display = "none"; // hide element
$("element").style.display = "block"; // show element (or inline)
$(this).find(".handle").show();
$(this).find(".handle").hide();