无法获得与jQuery的功能工作(Cant get a function with jquery to work)
下面的代码工作正常:
$("#searchTab").click(function(){ $(".tab").addClass("tabNo"); $(".tab").removeClass("tabYes"); $(this).addClass("tabYes"); $(".content").hide(); $("#searchContent").show(); });但如果我尝试将代码组织到下面的函数中,则不起作用。 只有“$(”。content“)。hide();” 从功能上看似乎奏效。 这是为什么?
function tabSelect(){ $(".tab").addClass("tabNo"); $(".tab").removeClass("tabYes"); $(this).addClass("tabYes"); $(".content").hide(); } $("#searchTab").click(function(){ tabSelect(); $("#searchContent").show(); });The following code below works fine:
$("#searchTab").click(function(){ $(".tab").addClass("tabNo"); $(".tab").removeClass("tabYes"); $(this).addClass("tabYes"); $(".content").hide(); $("#searchContent").show(); });but if I try to organize the code into a function like below it does not work. Only "$(".content").hide();" from the function seem to work. Why is that?
function tabSelect(){ $(".tab").addClass("tabNo"); $(".tab").removeClass("tabYes"); $(this).addClass("tabYes"); $(".content").hide(); } $("#searchTab").click(function(){ tabSelect(); $("#searchContent").show(); });最满意答案
this参考已经改变了。 您需要将它作为参数传递给tabSelect ,或者将其包装并使用包装器。 ( $(this) )
function tabSelect($itemToTab){ $(".tab").addClass("tabNo"); $(".tab").removeClass("tabYes"); $itemToTab.addClass("tabYes"); $(".content").hide(); } $("#searchTab").click(function(){ tabSelect($(this)); $("#searchContent").show(); });The this reference has changed. You'll need to pass it as an argument to tabSelect, or wrap it and use the wrapper. ($(this))
function tabSelect($itemToTab){ $(".tab").addClass("tabNo"); $(".tab").removeClass("tabYes"); $itemToTab.addClass("tabYes"); $(".content").hide(); } $("#searchTab").click(function(){ tabSelect($(this)); $("#searchContent").show(); });更多推荐
发布评论