我正在构建一个 WordPress 主题,并希望使用 AJAX 加载帖子和页面。我通过下面的代码片段解决了这个问题,但现在我只需要在点击 Logo 时抑制该功能,显然链接到主页 url。因此,当单击 Logo 时,它应该强制正常重新加载,而不是使用该功能。
我认为这与“if hasClass(logo) then use default”有关...是的,我对 JavaScript 还很陌生,但我一直在搜索很多东西,所以在正确的方向上有任何帮助将不胜感激。谢谢!
片段:
$(".home li.home").removeClass("home").addClass("current_page_item"); var $wrapperAjax = $("#wrapper-ajax"), URL = '', siteURL = "http://" + top.location.host.toString(), $internalLinks = $("a[href^='"+siteURL+"']"), hash = window.location.hash, $ajaxSpinner = $("#ajax-loader"), $el, $allLinks = $("a"); function hashizeLinks() { $("a[href^='"+siteURL+"']").each(function() { $el = $(this); if ($.browser.msie) { $el.attr("href", "#/" + this.pathname) .attr("rel", "internal"); } else { $el.attr("href", "#" + this.pathname) .attr("rel", "internal"); } }); }; hashizeLinks(); $("a[rel='internal']").live("click", function() { $ajaxSpinner.fadeIn(); $wrapperAjax.animate({ opacity: "0.1" }); $el = $(this); $(".current_page_item").removeClass("current_page_item"); $allLinks.removeClass("current_link"); URL = $el.attr("href").substring(1); URL = URL + " .entry"; $wrapperAjax.load(URL, function() { $el.addClass("current_link").parent().addClass("current_page_item"); $ajaxSpinner.fadeOut(); $wrapperAjax.animate({ opacity: "1" }); hashizeLinks(); }); }); $("#searchform").submit(function(e) { $ajaxSpinner.fadeIn(); $wrapperAjax.animate({ opacity: "0.1" }); $el = $(this); $(".current_page_item").removeClass("current_page_item"); $allLinks.removeClass("current_link"); URL = "/?s=" + $("#s").val() + " .entry"; $wrapperAjax.load(URL, function() { $ajaxSpinner.fadeOut(); $wrapperAjax.animate({ opacity: "1" }); hashizeLinks(); }); e.preventDefault(); }); if ((hash) && (hash != "#/")) { $("a[href*='"+hash+"']").trigger("click"); }
最佳答案
我猜你指的是这一行的脚本:$("a[rel='internal']")
在这种情况下,$("a[rel='internal']").not('.logo')
应该可以解决问题。
我应该阅读整个代码。将 $("a[href^='"+siteURL+"']")
替换为 $("a[href^='"+siteURL+"']").not(' .logo')
也是。
关于javascript - 如何用例如抑制 JavaScript 函数。有课吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017283/