Javascript jQuery是否有一个与CSS3类似的:target伪类?
jQuery是否有一个与CSS3类似的:target伪类 如果是这样的话,演示就好了Javascript jQuery是否有一个与CSS3类似的:target伪类?,javascript,jquery,css,pseudo-class,Javascript,Jquery,Css,Pseudo Class,jQuery是否有一个与CSS3类似的:target伪类 如果是这样的话,演示就好了 谢谢 内置的,我不这么认为,但你可以这样做: $(location.hash); 编辑:谢谢,格雷厄姆 另一个编辑:这里有一个jQuery的示例,相当于:target。因为较旧的浏览器可能无法识别window.onhashchange事件,并且location.hash通常在锚标记的onclick事件的处理程序末尾更新,从而使新的哈希在处理程序期间对jQuery选择器不可用,除非location.hash=t
谢谢 内置的,我不这么认为,但你可以这样做:
$(location.hash);
编辑:谢谢,格雷厄姆
另一个编辑:这里有一个jQuery的示例,相当于:target。因为较旧的浏览器可能无法识别window.onhashchange事件,并且location.hash通常在锚标记的onclick事件的处理程序末尾更新,从而使新的哈希在处理程序期间对jQuery选择器不可用,除非location.hash=this.href.substringthis.href.indexOf;如果预先调用,我们必须使用单击的锚点的clipped href值作为选择器:简单,只需执行以下操作:
$(window.location.hash)
它将在同时支持和:target伪类的浏览器中工作,并在不支持IE7和IE8的浏览器中抛出错误。这是因为jQuery使用浏览器的原生document.querySelectorAll(如果可用),否则会返回选择器引擎。令人烦恼的是: Sizzle几乎支持所有功能,甚至包括一些很少实现的部分,如转义选择器“.foo\+bar”、Unicode选择器和按文档顺序返回的结果。CSS 3选择器支持有几个值得注意的例外情况,做出此决定的原因可能是: :根 :目标 :n最后一个孩子 :n个类型/:n个最后一个类型/:第一个类型/:最后一个类型/:仅类型 :朗 由于sizzle不支持:target,jQuery在旧浏览器中使用时将抛出错误 在各种浏览器中尝试此页面: 好消息是,自己添加一个:target选择器并不重要:
$.expr[":"].target = function (node) {
var t = location.hash.substr(1);
return t && node.id == t || node.name == t;
}
工作演示:
编辑:通过复制:target样式定义,将:target替换为.target,可以让IE7和IE8使用:target样式。请注意,您必须复制整个定义,因为如果您尝试在规则定义的选择器中使用:target伪类,IE8会阻塞它,根本不会解析规则。复制样式后,使用插件并使用以下代码:
$(function () {
try {
$(":target");
}
catch (err) {
$.expr[":"].target = function (node) {
var t = location.hash.substr(1);
return t && node.id == t || node.name == t;
}
$(window).hashchange(function () {
$(".target").removeClass("target");
$(":target").addClass("target");
});
}
});
工作演示改编自:我认为您不能选择psudo类。我很难看到:target概念如何与jQuery一起工作。@lonesomeday我也是!只是好奇老浏览器是否有退路?这很有趣。你能提供一个如下的演示吗:见下文-你不需要前缀,因为hash属性包含文本hash符号。啊,没错。我习惯于从location.hash中剥离字符,以至于有时我忘记了它的存在。抢手货