簡體   English   中英

Javascript與WordPress沖突

[英]Javascript conflict with WordPress

我可以使用此地理位置,但是如果將其放在WordPress中,它將停止工作。 這怎么了

http://jsfiddle.net/spzg5oL8/3/

$.get("http://freegeoip.net/json/", function (response) {
    $("#ip").html("IP: " + response.ip);
    //$("#country_code").html(response.country_code);
    document.getElementsByClassName(response.country_code)[0].style.display = "block";
}, "jsonp");

由於某種原因(肯定)和另一種原因(潛在地),這在WordPress中將不起作用:

首先,您不能在WordPress中將$用於jQuery。 WordPress以“無沖突”模式加載jQuery,這意味着您必須使用jQuery ,或將其包裝在文檔就緒方法中以“注入” $

 jQuery(function($) {
    $.get("http://freegeoip.net/json/", function (response) {
        $("#ip").html("IP: " + response.ip);
        //$("#country_code").html(response.country_code);
        // Why don't you use jQuery here, for simplicity?
        // $('.' + response.country_code).style('display', 'block');
        document.getElementsByClassName(response.country_code)[0].style.display = "block";
    }, "jsonp");
});

其次,您必須確保jQuery網站上已加載 jQuery。 無論您做什么, 不僅要在網站標題中硬編碼指向jQuery的鏈接,還要在主題(或插件)的functions.php文件中添加以下php:

add_action('wp_enqueue_scripts', 'load_my_scripts');

function load_my_scripts() {
    wp_enqueue_script('jquery');
}

除了@cale_b所說的之外,您還可以看到對jQuery.noConflict();的調用jQuery.noConflict(); 作為Wordpress的jQuery文件的最后一行:

/wp-includes/js/jquery/jquery.js

我沒有在文檔中明確找到任何內容,但是在代碼中看到它有助於了解發生了什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM