我正在尝试编写一个函数来检查.toggle
是否有.active
,然后它会计算.hidden
中的字数并将margin-bottom
添加到{{1}因此。
这不起作用:
.portrait-wrapper
任何指导都将不胜感激。
0
答案 0 :(得分:4)
hasClass
返回一个布尔值,因此您需要在if语句中使用它。另外,当您找到课程时,请不要使用.
符号
if($( ".toggle" ).hasClass( 'active')){
var n = $(".hidden").text().split(" ").length;
if (n > 1400) {
$(".portrait-wrapper").css("margin-bottom", "500px");
}
else {
$(".portrait-wrapper").css("margin-bottom", "100px");
}
}
答案 1 :(得分:1)
不要使用"。" " hasClass"中的类选择器功能。它已经很重要了:
http://api.jquery.com/hasclass/
if ($( ".toggle" ).hasClass('active')) {
}
答案 2 :(得分:1)
正如我在评论中发表的那样,有两个问题:
$(".hidden").text().trim().split(" ").length
。阅读.text()
,String.prototype.trim()
和String.prototype.split()
结果如下:
$('.toggle').click(function() {
if($(".toggle").hasClass('active')) {
var n = $(".hidden").text().trim().split(" ").length;
if (n > 1400) {
$(".portrait-wrapper").css("margin-bottom", "500px");
}
else {
$(".portrait-wrapper").css("margin-bottom", "100px");
}
}
});
详细说明:在您的示例中,您使用$(".hidden").length
。这将返回".hidden"
匹配的元素数,但与该字段的内容无关。
答案 3 :(得分:0)
使用hasClass函数时,不应使用.
- 表示法。
请参阅:hasClass docs
答案 4 :(得分:0)
.hasClass(className)
方法不会将function
作为第二个参数。
正如doc所说:
.hasClass(className) 班级名称 类型:字符串 要搜索的类名。
做类似的事情:
$(".toggle").click(function(){
$(this).hasClass("active") && doTheTrick();
//same as if($(this).hasClass("active)) doTheTrick()
})
function doTheTrick(){
var n = $(".hidden").text().trim().split(" ").length;
var margin = n > 1400 ? "500px" : "100px";
$(".portrait-wrapper").css("margin-bottom", margin)
});
答案 5 :(得分:-2)
$(function(){
$('.toggle').click(function(){
if ($( ".toggle" ).hasClass('active'))
{
var n = $(".hidden").length;
if (n > 1400) {
$(".portrait-wrapper").css("margin-bottom", "500px");
}
else {
$(".portrait-wrapper").css("margin-bottom", "100px");
}
};
});
});