任何人都有关于如何使用jquery.support测试特定于IE6(而不是IE7)的任何想法?使用jQuery.support检测IE6
我的问题是,IE6支持:悬停psuedo类只锚元素和IE7确实支持所有元素(如FF,铬等)。所以我想在浏览器不支持的情况下做一些特殊的事情:为所有元素悬停...因此我需要一种方法来测试这个功能。 (不想使用jQuery.browser)。有任何想法吗?
任何人都有关于如何使用jquery.support测试特定于IE6(而不是IE7)的任何想法?使用jQuery.support检测IE6
我的问题是,IE6支持:悬停psuedo类只锚元素和IE7确实支持所有元素(如FF,铬等)。所以我想在浏览器不支持的情况下做一些特殊的事情:为所有元素悬停...因此我需要一种方法来测试这个功能。 (不想使用jQuery.browser)。有任何想法吗?
尽管检查功能支持而不是用户代理是一种很好的做法,但没有简单的方法来检查诸如使用JavaScript支持CSS属性之类的东西。我建议你按照上面的海报建议使用条件注释或使用jQuery.browser。一个简单的实现(不进行验证的性能或错误)可能看起来像这样:
if ($.browser.msie && $.browser.version.substr(0,1)<7) {
// search for selectors you want to add hover behavior to
$('.jshover').hover(
function() {
$(this).addClass('over');
},
function() {
$(this).removeClass('over');
}
}
在您的标记,该.jshover类添加到您想要悬停在CSS效果的任何元素。在你的CSS,添加规则是这样的:
ul li:hover, ul li.over { rules here }
jQuery.support没有性能检测:悬停支持 http://docs.jquery.com/Utilities/jQuery.support
,不过也许你可以简单地使用悬停()事件 http://docs.jquery.com/Events/hover
是的,这正是我的问题:),我想哟用户悬停()事件,但只有当
您可以使用Microsoft Internet Explorer中的具体Conditional Comment具体应用代码只是IE6。
<!--[if IE 6]>
Special instructions for IE 6 here... e.g.
<script>...hook hover event logic here...</script>
<![endif]-->
这可能是最好的选择,只是想知道是否有人有另一种方式来做到这一点...因为jQuery文档中提到“jQuery带有许多属性,你应该随时添加你自己的。”无论如何感谢 – Jaime 2009-02-25 01:22:43
如果您要动态加载脚本或在动态创建的元素(例如模态)上运行代码,这将不起作用。 – KyleFarris 2013-07-23 18:52:34
@KyleFarris取决于...你可以检查IE6与条件注释,如果你满足条件,根据需要为所有现有的DOM元素和未来元素使用`.live()`处理程序(在jQuery的最高设置jQuery的处理程序从jQuery的V1.8)或首选'。对()`1.7+ http://api.jquery.com/on/ – scunliffe 2013-07-23 20:38:44
这是一个例子,我们应该退后一步,问为什么你这样做。
通常是创建一个菜单。如果是这样,我强烈建议你省去一些头疼的问题,并使用像superfish这样的插件或者其中一种插件。
如果不是,我建议你使用jQuery hover()事件监听器。例如:
$("td").hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
});
会做你想做的。
ThickBox的使用
if(typeof document.body.style.maxHeight === "undefined") {
alert('ie6');
} else {
alert('other');
}
我会使用什么:悬停 - http://www.xs4all.nl/~peterned/csshover.html
它使用行为,并很适合我。
if ($.browser.msie && parseInt($.browser.version, 10) == 6) {
alert("I'm not dead yet!");
}
只是为了好玩(不使用jQuery.support):
$(document).ready(function(){
if(/msie|MSIE 6/.test(navigator.userAgent)){
alert('OMG im using IE6');
}
});
你也可以做到这一点通过PHP
<?
if(preg_match('/\bmsie 6/i', $ua) && !preg_match('/\bopera/i', $ua)){
echo 'OMG im using IE6';
}
?>
没有下面的答案竟然回答了这个问题!这是荒谬的。 – vsync 2013-02-20 16:34:16