jquery:自定义选择器不工作
我想创建一个自定义jquery选择器来返回css("visibility") == "inherit"
布尔,但它似乎并没有工作。下面是代码...jquery:自定义选择器不工作
$.expr[":"].crazyvisible = function(a) {
var elem = $(a);
return (elem.css("visibility") == "inherit");
};
这是我使用的选择(我也试过直播)代码...
$(document).ready(function() {
$("span#Request1_multiconditionvalidator2").delegate(":crazyvisible","attachErrorMessage", function() {
...
}
}
没有什么不对您的选择或据我所知,你的.delegate()
电话。问题是.css()
函数返回元素的计算样式,因此您永远不会得到'inherit'
作为值,因为它随后会计算为元素父级具有的任何样式。
关于使用jQuery在this question中检查继承CSS属性的更多信息,简而言之,这并不容易。
编辑:如果你只需要知道,如果一个元素是不是'hidden'
,不管是继承与否,你可以这样做:
$.expr[":"].crazyvisible = function(a) {
var elem = $(a);
return elem.css("visibility") != "hidden";
};
由于某种原因,这是行不通的。我把一块手表放在$(“span#Request1_multiconditionvalidator2”).css(“visibility”)的firebug中,它等于隐藏。然后我遇到了取消隐藏范围的条件,它等于继承 – bflemi3
只是一个更新。我试图在firebug手表... $(“span#Request1_multiconditionvalidator2:crazyvisible”)。attr(“id”)并得到“语法错误,无法识别的表达式:语法错误,无法识别的表达式:知名度” – bflemi3
我打算给你答案,因为在正常情况下,这将工作完美。我认为我遇到了问题,因为我无法访问的另一个脚本导致我的代码出现问题。谢谢你的帮助。 – bflemi3
定义“似乎并不奏效”,请。 –
@Henning Makholm attachErrorMessage函数不会触发。 – bflemi3
@BoltClock如何检查可见性==继承或知名度!=隐藏 – bflemi3