我遇到了下面的代码片段,试图理解它。我知道我们正在使用三元运算符并在menuclick上添加活动类,但我们将非常感谢详细说明。
navClick: function (o) {
var _this = this //what does this refer to
//what does this line of code do especially the equal sign
!_this.menuclicked ?(($(".last-menuitem").attr("id")==$("#menu li.active").find("a:last-child").not(".ignore-ele").attr("class")
|| $(".last-menuitem").find(".view-holder").attr("id")==$("#menu li.active").find("a:last-child").not(".ignore-ele").attr("class")
|| ($(window).scrollTop() + $(window).height() >= $(document).height() - 20))?($(".last-menuitem").length!=0 && $(".arrow").addClass('yellow'))
:($(".arrow").removeClass('yellow'))):
}
谢谢
答案 0 :(得分:0)
!_this.menuClicked
我假设menuClicked是一个布尔表示,表示菜单是否已被点击。那么这就是说如果单击菜单返回false。因为!
是否定运算符
所以如果!_this.menuClicked == true
那么就这样做
(($(".last-menuitem").attr("id") == $("#menu li.active").find("a:last-child").not(".ignore-ele").attr("class")
||
$(".last-menuitem").find(".view-holder").attr("id") == $("#menu li.active").find("a:last-child").not(".ignore-ele").attr("class")
||
($(window).scrollTop() + $(window).height() >= $(document).height() - 20))
(".last-menuitem").attr("id") == $("#menu li.active").find("a:last-child").not(".ignore-ele").attr("class")
第一个或检查lastMenuItems id是否等于活动菜单项最后一个具有忽略else类的子进程。
如果这是真的,我们去嵌套的转弯
($(".last-menuitem").length!=0 && $(".arrow").addClass('yellow'))
检查last-menuitem类中是否包含元素,然后使得.arrow类的元素具有黄色css样式。
如果嵌套式turnery的第一部分是假的,那么我们点击第二部分
$(".last-menuitem").find(".view-holder").attr("id") == $("#menu li.active").find("a:last-child").not(".ignore-ele").attr("class")
如果具有视图持有者类的id的lastmenuItem等于最后被激活的活动菜单项,那么doeesnt上有忽略else类。
做前面提到的真实部分。如果没有做嵌套式车辆的第三部分
($(window).scrollTop() + $(window).height() >= $(document).height() - 20))
如果滚动位置+窗口高度大于文档高度 - 20则返回true。并做嵌套式车辆的真正部分。否则如果所有返回false都执行false部分
($(".arrow").removeClass('yellow'))):
如果一切都为假,则使用.arrow类从元素中删除黄色。 下面是一个可读的turnery
!_this.menuclicked ?
(
(
$(".last-menuitem").attr("id") == $("#menu li.active").find("a:last-
child").not(".ignore-ele").attr("class")
|| $(".last-menuitem").find(".view-holder").attr("id") == $("#menu
li.active").find("a:last-child").not(".ignore-ele").attr("class")
|| ($(window).scrollTop() + $(window).height() >= $(document).height()
- 20)
)
? ($(".last-menuitem").length!=0 && $(".arrow").addClass('yellow'))
: ($(".arrow").removeClass('yellow'))
):