select t3.name, sum(t3.prod_A) as Prod_A, sum(t3.prod_B) as Prod_B, sum(t3.prod_C) as Prod_C, sum(t3.prod_D) as Prod_D, sum(t3.prod_E) as Prod_E
from
(select t2.name as name,
case when t2.prodid = 1 then t2.counts
else 0 end prod_A,
case when t2.prodid = 2 then t2.counts
else 0 end prod_B,
case when t2.prodid = 3 then t2.counts
else 0 end prod_C,
case when t2.prodid = 4 then t2.counts
else 0 end prod_D,
case when t2.prodid = "5" then t2.counts
else 0 end prod_E
from
(SELECT partners.name as name, sales.products_id as prodid, count(products.name) as counts
FROM test.sales left outer join test.partners on sales.partners_id = partners.id
left outer join test.products on sales.products_id = products.id
where sales.partners_id = partners.id and sales.products_id = products.id group by partners.name, prodid) t2) t3
group by t3.name ;
По умолчанию, когда вы вставляете jQuery в Wordpress, вы должны использовать jQuery
, а $
не используется (это для совместимости с другими библиотеками).
Ваше решение обернуть его в function
будет работать нормально, или вы можете загрузить jQuery другим способом (но это, вероятно, не очень хорошая идея в Wordpress).
Если вы должны использовать document.ready
, вы можете фактически передать $
в функцию call:
jQuery(function ($) { ...
замените знак $
на jQuery
следующим образом:
jQuery(function(){
//your code here
});
Вы можете избежать конфликтов, подобных этому
var jq=jQuery.noConflict();
jq(document).ready(function(){
alert("Hi this will not conflict now");
jq('selector').show();
});
Дважды проверьте ссылки на jQuery. Возможно, вы ссылаетесь на него более одного раза или вы слишком рано вызываете свою функцию (до определения jQuery). Вы можете попробовать, как указано в моих комментариях, и поместить любую ссылку jQuery в верхнюю часть вашего файла (в голове) и посмотреть, поможет ли это.
Если вы используете инкапсуляцию jQuery, она не должна Это дело. Пожалуйста, попробуйте, потому что я думаю, что это красивее и более очевидно, но если jQuery не определен, вы получите те же ошибки.
В конце ... jQuery в настоящее время не определен.
script
, который ссылается на JQuery
на вершину вашего index.html
, и он, вероятно, будет работать
– Dan Moldovan
18 May 2015 в 20:36
var $=jQuery.noConflict();
$(document).ready(function(){
// jQuery code is in here
});
Отдать должное Ashwani Panwar и Cyssoo ответ: https://stackoverflow.com/a/29341144/3010027
Вы должны передать $ in function ()
<script>
jQuery(document).ready(function($){
// jQuery code is in here
});
</script>
Попробуйте следующее:
<script language="JavaScript" type="text/javascript" src="jquery/jquery.js"></script>
<script>
jQuery.noConflict();
(function ($) {
function readyFn() {
// Set your code here!!
}
$(document).ready(readyFn);
})(jQuery);
</script>
Вы сталкиваетесь с этой проблемой, когда имя вашей функции и одно из имен имен в файле одинаково. просто убедитесь, что все ваши имена имен в файле уникальны.
Это должно исправить:
jQuery(document).ready(function($){
//you can now use $ as your jQuery object.
var body = $( 'body' );
});
Проще говоря, WordPress запускает свои собственные скрипты, прежде чем вы сможете, и они освободят $
var, чтобы он не сталкивался с другими библиотеками. Это делает общий смысл, поскольку WordPress используется для всех видов веб-сайтов, приложений и, конечно, блогов.
Из их документации:
Библиотека jQuery, включенная в WordPress установлен в режим noConflict () (см. Wp-includes / js / jquery / jquery.js). Это необходимо для предотвращения проблем совместимости с другими библиотеками JavaScript, которые может связывать WordPress.
В режиме noConflict () глобальный $ shortcut для jQuery недоступен ...
blockquote>
<script>
var jq=jQuery.noConflict();
(function ($)
{
function nameoffunction()
{
// Set your code here!!
}
$(document).ready(readyFn);
})(jQuery);
теперь использовать jq вместо jQuery
Что сработало для меня. Первая библиотека для импорта - это библиотека запросов, а затем вызов метода jQuery.noConflict ().
<head>
<script type="text/javascript" src="jquery.min.js"/>
<script>
var jq = jQuery.noConflict();
jq(document).ready(function(){
//.... your code here
});
</script>
Кроме того, я нашел хорошее решение для использования режима jQuery noConflict.
(function($){
$(document).ready(function(){
// write code here
});
// or also you can write jquery code like this
jQuery(document).ready(function(){
// write code here
});
})(jQuery);
Я нашел это решение здесь. https://thecodingstuff.com/how-to-properly-use-jquery-noconflict-mode-in-wordpress/
Используйте
jQuery(document).
вместо
$(document).
или
Внутри функции $ указывает на jQuery, как вы ожидали бы
(function ($) {
$(document).
}(jQuery));
(function( $ ) { "use strict"; $(function() { //Your code here }); }(jQuery));
Это решение сработало для меня
;(function($){
// your code
})(jQuery);
Перенесите свой код внутри замыкания и используйте $
вместо jQuery
Я нашел указанное решение в https://magento.stackexchange.com/questions/33348/uncaught-typeerror-undefined-is-not-a-function-when-using-a-jquery-plugin-in-ma
... после поиска слишком много