Javascript与WordPress冲突

时间:2016-02-09 18:36:47

标签: javascript wordpress geolocation

我得到了这个地理位置,但如果我把它放在WordPress中它就会停止工作。 这有什么问题?

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

public function mate()
{
    return $this->belongsTo('App\Player', 'mate_id');
}

2 个答案:

答案 0 :(得分:2)

由于某种原因(肯定),这在WordPress中不起作用,另一个原因(可能):

首先,你不能在WordPress中使用$来表示jQuery。 WordPress加载jQuery in" no-conflict"模式,这意味着你必须使用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");
});

其次,您必须确保WordPress网站上的jQuery 已加载。无论你做什么,只是在网站的标题中硬编码链接到jQuery,而是在主题(或插件)的functions.php文件中添加以下php :

add_action('wp_enqueue_scripts', 'load_my_scripts');

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

答案 1 :(得分:0)

添加到@cale_b所说的内容,你可以看到对jQuery.noConflict();的调用是Wordpress的jQuery文件的最后一行:

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

我没有在文档中明确找到任何内容,但在代码中查看它有助于了解发生了什么。