javascript - 如何用例如抑制 JavaScript 函数。有课吗?

标签 javascript ajax wordpress

我正在构建一个 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/

相关文章:

javascript - 如何在 JavaScript 中复制变量?

Javascript 在 JSFiddle 上运行但不在网页上运行

css - 响应式 CSS 样式即时内联

RegEX 匹配方括号之外的所有内容

php - WordPress:wp_enqueue_style 不工作

javascript - 将函数附加到数组

javascript - jQuery:CSS更改后何时查询新的外部高度?

php - CodeIgniter Controller - JSON - AJAX

javascript - 没有JQUERY的使用AJAX发送表单数据的POST方法

jquery ajax() 异步 false