以下代码工作正常:
$("#searchTab").click(function(){
$(".tab").addClass("tabNo");
$(".tab").removeClass("tabYes");
$(this).addClass("tabYes");
$(".content").hide();
$("#searchContent").show();
});
Run Code Online (Sandbox Code Playgroud)
但如果我尝试将代码组织成如下所示的函数,它就不起作用.只有"$(".content").hide();" 从功能似乎工作.这是为什么?
function tabSelect(){
$(".tab").addClass("tabNo");
$(".tab").removeClass("tabYes");
$(this).addClass("tabYes");
$(".content").hide();
}
$("#searchTab").click(function(){
tabSelect();
$("#searchContent").show();
});
Run Code Online (Sandbox Code Playgroud)
该this基准已经改变.您需要将其作为参数传递给它tabSelect,或者将其包装并使用包装器.($(this))
function tabSelect($itemToTab){
$(".tab").addClass("tabNo");
$(".tab").removeClass("tabYes");
$itemToTab.addClass("tabYes");
$(".content").hide();
}
$("#searchTab").click(function(){
tabSelect($(this));
$("#searchContent").show();
});
Run Code Online (Sandbox Code Playgroud)