我可能會在一個主題.js
文件有一個錯誤我購買:
$('.tagcloud a').wrap('<span class="st_tag" />');
我試圖解決這個問題,但讓我不要」我不是一個程序員不知道如何。 該網站是這樣的:http://www.framerental.com。
我可能會在一個主題.js
文件有一個錯誤我購買:
$('.tagcloud a').wrap('<span class="st_tag" />');
我試圖解決這個問題,但讓我不要」我不是一個程序員不知道如何。 該網站是這樣的:http://www.framerental.com。
jQuery可能會丟失。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
這是可能的,但wordpress和CMS的大部分$並未默認設置。 –
如果你已經包括jQuery的,可能會有衝突。嘗試使用jQuery
而不是$
。
您使用jQuery.noConflict();
所以$
是不確定的。
你可以閱讀更多關於它在這裏docs
嘗試修改代碼以這種方式(加$
標誌就緒功能):
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
好的!現在有些東西可以工作,但出現其他錯誤:Referenceerror resiza窗口未定義。行:jQuery(窗口).bind(「resize」,resizeWindow); (new windowWidth = jQuery(window).width(); var newWindowWidth = jQuery(window).width();調用函數resizeWindow(e){ var newWindowWidth = jQuery(window).width – user1645326
嘗試在綁定表達式之前定義函數。 – jurka
這個修正了舊的WP主題的所有錯誤,當我評論了主題的舊「入隊」jQuery。坦率地說,我發現「wp_enqueue_script」系統真的很煩人,做作,過於複雜和不必要。我希望WordPress會隱藏/劃分自己的管理面板的js代碼,並讓我們使用jQuery的方式如何使用它。 「wp_enqueue_script」是否通過Google PageSpeed Insight測試?可能不會。無論是要麼所有WP插件和主題都使用相同的jQuery - 那麼每個人都會在同一頁面上,我們都可以一起前進。 –
要麼你不包括jQuery的工具包/ lib目錄正如一些人所建議的那樣,或者存在着某種衝突。測試:包括jQuery和測試這樣的:
console.log($);
console.log($ === jQuery);
如果$
不是不確定的,和$ === jQuery
日誌假的,你一定有你的手的衝突。用jQuery
代替$
解決了這個問題,但這可能非常繁瑣(所有額外的輸入...)。通常我使用$jq = _$ = jQuery;
來啓動我的腳本,以至少對jQuery對象有一個較短的引用。
當然,之前你這樣做,請檢查,如果你不小心覆蓋已預先設定的變量:console.log($jq, _jQ, _$);
取其不undefined
應該被單獨留在家中,當然
Elias你似乎有答案,但只要我不是程序員,我覺得你在用中文說話。我有沒有簡單的解決方案?我完全迷失了:-( – user1645326
@ user1645326:是的,有。你的評論在jurka的回答下告訴我,你要麼不在包裝器中編寫所有的jQ代碼'jQuery(document).ready(function($){ 'resizeWindow'應該從$(this).width();'而不是'jQuery(window).with();'但可能最重要的是:error這一切:在你的代碼中有一個錯字:只搜索你的代碼'resiza窗口',並用'resizeWindow'代替它... –
功能錯誤是常見的事在幾乎所有的內容管理系統中,您可以通過幾種方法來解決這個問題。
使用包裝你的代碼:
<script>
jQuery.noConflict();
(function($) {
$(function() {
// YOUR CODE HERE
});
});
</script>
: <script>
jQuery(function($) {
YOUR CODE GOES HERE
});
</script>
您也可以使用noConflict();
<script>
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
使用noConflict不使用文檔準備的另一個例子使用jQuery的API
你甚至可以選擇創建您的別名,以避免像這樣的衝突:
var jExample = jQuery.noConflict();
// Do something with jQuery
jExample("div p").hide();
還有一個較長的解決方案是爲$所有referances重命名爲jQuery的:
$("div p").hide();
到jQuery("div p").hide();
請加上:
<script>
var $ = jQuery.noConflict();
</script>
添加到header.php中的head標籤。或者,如果您想在管理區域(或不使用header.php的地方)使用美元符號,就在要使用它的地方之前。
(可能有一些矛盾,我是不知道的,測試它,如果有,用在這裏還是在鏈路波紋管提供的其他解決方案。)
來源:http://www.wpdevsolutions.com/use-the-dollar-sign-in-wordpress-instead-of-jquery/
這個工程如果你在腳註中排隊你自己的自定義主題腳本 – Turbojohan
相反這樣做的:
$(document).ready(function() { });
你應該這樣做:
jQuery(document).ready(function($) {
// your code goes here
});
這是因爲WordPress可能會在將來或現在使用$以外的其他功能,所以您需要以$的方式加載jQuery,只能在jQuery文檔準備好的回調中使用。
這適用於任何在doc.ready中的東西如果你想要它在全局(窗口函數),查看上面的Savage的答案 – cbloss793
我補充說,裝在head
節結束自定義腳本文件,並插入頂部以下內容:
(function (jQuery) {
window.$ = jQuery.noConflict();
})(jQuery);
(這是Fanky的回答修改)
比其他noConflict,這也有幫助:
(function($) {
// Variables and DOM Caching using $.
var body = $('body');
console.log(body);
})(jQuery);
這是偉大的!是否有竅門,謝謝。 – Andy
說實話,如果你已經支付的主題,你有沒有到你的網站做了很多其他的定製(如你不是人後程序員l)我會聯繫他們的支持 – TommyBs