[英]How can I combine two on click functions?
我有兩個點擊功能...有點像下面。 這是工作。 但是,我有種感覺,由於優化原因,單擊功能可以組合為一個。 基本上,當單擊xx時,它顯示一些元素,隱藏一些元素,並添加一個類。 單擊yy時,情況恰好相反。 這些可以合並嗎?
/*clicking the search icon on the top*/
$(".xx").on("click",function(){
$a.show();
$b.hide();
$c.addClass("myClass");
});
/*clicking the cross icon on the top*/
$(".yy").on("click",function(){
$c.removeClass("myClass");
$a.hide();
$b.show();
});
是的,您可以將它們與單個功能結合使用。 當您隱藏,顯示類並將類添加到某些元素時,必須檢查是否單擊了相應的元素。 這是代碼:
$(".xx, .yy").on("click", function(){
if($(this).hasClass("xx")){
$a.show();
$b.hide();
$c.addClass("myClass");
}else if($(this).hasClass("yy")){
$c.removeClass("myClass");
$a.hide();
$b.show();
}
});
而已。
您可以使用attr來檢查類名,也可以使用hasClass()
$(".xx, .yy").on("click",function(){
var c_name = $(this).attr('class');
if(c_name == 'xx'){
$a.show();
$b.hide();
$c.addClass("myClass");
}else if(c_name == 'yy'){
$c.removeClass("myClass");
$a.hide();
$b.show();
}
});
而不是將類添加到$ c中,而是將該類添加到一個公共父對象中,並使用CSS控制$ a和$ b的可見性
.a, .b {display:none;}
.parentClass .a, .parentClass .b{
display:block
}
並根據單擊的元素添加或刪除類。
您可以使用切換功能並將布爾值傳遞給它們:
$(".xx, .yy").on("click",function(){
var custBoolean = $(this).is(".xx");
$a.toggle(custBoolean);
$b.toggle(!custBoolean);
$c.toggleClass("myClass", custBoolean);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.