Javascript WordPress插件中的jQuery冲突-jQuery与WordPress核心

Javascript WordPress插件中的jQuery冲突-jQuery与WordPress核心,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我有一个自定义开发的WordPress插件,它使用的是jQuery1.4,由于某些原因,它与WordPress js代码的核心相冲突。。。不确定,但我认为它也是jQuery,不是吗 无论如何,我假设我使用的是这个名为“anytime.js”的datepicker脚本,但是调试后发现,在删除插件中指向“anytime.js”的链接后,冲突仍然在发生,但最终在我删除了指向jquery.1.4.min.js的链接后解决了 那么,对于如何避免冲突,有什么想法吗?是基于WordPress jQuery,这

我有一个自定义开发的WordPress插件,它使用的是jQuery1.4,由于某些原因,它与WordPress js代码的核心相冲突。。。不确定,但我认为它也是jQuery,不是吗

无论如何,我假设我使用的是这个名为“anytime.js”的datepicker脚本,但是调试后发现,在删除插件中指向“anytime.js”的链接后,冲突仍然在发生,但最终在我删除了指向jquery.1.4.min.js的链接后解决了

那么,对于如何避免冲突,有什么想法吗?是基于WordPress jQuery,这是原因还是其他原因

以下是插件中的相关代码:

function datepicker_header(){
    $theme_dir = get_bloginfo('wpurl').'/wp-content/plugins/postevents/js/';?>

    <link rel="stylesheet" type="text/css" href="<?=$theme_dir?>anytime.css" />
    <link rel="stylesheet" type="text/css" href="<?=$theme_dir?>ui.css" />

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type='text/javascript'></script>
    <script src="<?=$theme_dir?>anytime.js" type='text/javascript'></script>

    <script type="text/javascript">
        $(function(){
            AnyTime.picker( "startdate", { format: "%m-%d-%Y", firstDOW: 1, baseYear: '<?=date('Y')?>', earliest: '<?=date('m-d-Y')?>' } );
            AnyTime.picker( "enddate", { format: "%m-%d-%Y", firstDOW: 1, baseYear: '<?=date('Y')?>', earliest: '<?=date('m-d-Y')?>'  } );
        });
    </script>
function datepicker_header(){
$theme_dir=get_bloginfo('wpurl')。/wp content/plugins/postevents/js/';?>
尝试:

尝试:


请参阅有关向Wordpress正确添加脚本的链接:


是的,Wordpress使用JQuery来实现它的一些功能…

请参阅有关向Wordpress正确添加脚本的链接:


是的,Wordpress使用JQuery实现某些功能…

此代码将检查JQuery是否已加载…如果尚未加载,则加载它(此代码从Google代码加载-如果您愿意,可以将URL更新为本地文件)

但是,我必须注意,只有在另一个可能的jQuery实例之后加载时,这才有效(不能保证jQuery实例以后不会加载,除非它执行相同的检查)

这在有时候加载jQuery的情况下非常有用,无论发生什么情况,您都需要始终加载它。在这种情况下,请将此代码放在原始代码加载后的某个位置,但在使用任何jQuery功能之前


还有一件事:我有时候WordPress对jQuery代码中的$很挑剔。你只需在需要$的地方键入“jQuery”(或执行查找/替换)而不是$。

此代码将检查jQuery是否已加载…如果尚未加载,则加载它(此代码从Google代码加载-如果愿意,可以将URL更新为本地文件)

但是,我必须注意,只有在另一个可能的jQuery实例之后加载时,这才有效(不能保证jQuery实例以后不会加载,除非它执行相同的检查)

这在有时候加载jQuery的情况下非常有用,无论发生什么情况,您都需要始终加载它。在这种情况下,请将此代码放在原始代码加载后的某个位置,但在使用任何jQuery功能之前


还有一件事:我有时候WordPress对jQuery代码中的$很挑剔。您只需键入“jQuery”(或执行查找/替换)就可以解决这个问题你能详细解释一下你的脚本是如何失败的吗?你怎么认为这是一个冲突?以及什么-原型和jQuery之间的冲突?另请参阅我的编辑…哈!我输入的速度很慢。所以…在包含有问题的行之后,在最终的源代码中只包含一个版本的jQuery?请参阅上面是@Matthew的回答。他演示了如何在jQuery尚未加载的情况下加载jQuery,从而解决了冲突。我知道这是我想要的,但不确定如何实现它!作为记录,您的观察是100%正确的,因为我发现我实际上需要您的修订以及@Matthew的修订才能获得代码w工作正常。你能详细解释一下你的脚本是如何失败的吗?你如何判断这是一个冲突?以及什么-原型和jQuery之间的冲突?另请参阅我的编辑…哈!我正在缓慢地键入。所以…在包含了有问题的行之后,你在最终的源代码中只包含了一个版本的jQuery?请参阅上面的@Matthew回复。他演示了如何在jQuery尚未加载的情况下加载它,从而解决了冲突。我知道这是我想要的,但不确定如何实现它!记录在案,您的观察是100%正确的,因为我发现我实际上需要您的修订版和@Matthew的修订版才能使代码正常工作。就是这样1.万分感谢你救了我的命!就是这样。万分感谢你救了我的命!
jQuery(function(){
    AnyTime.picker( "startdate", { format: "%m-%d-%Y", firstDOW: 1, baseYear: '<?=date('Y')?>', earliest: '<?=date('m-d-Y')?>' } );
    AnyTime.picker( "enddate", { format: "%m-%d-%Y", firstDOW: 1, baseYear: '<?=date('Y')?>', earliest: '<?=date('m-d-Y')?>'  } );
});
(function($){
    //... your plugin, etc. here
})(jQuery);
if(typeof(jQuery)=='undefined'){
    var loadjQuery = document.createElement("script");
    loadjQuery.setAttribute("type","text/javascript");
    loadjQuery.setAttribute("src","http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js");
    document.getElementsByTagName("head")[0].appendChild(loadjQuery);
}