Wordpress仅在类存在时使用脚本(或方法)

时间:2013-03-15 19:48:27

标签: jquery wordpress methods

我在wordpress中遇到了脚本问题。我在主题文件夹

中的functions.php中包含了脚本
function my_scripts_method() {
   wp_register_script( 'my-js-file',
       get_template_directory_uri() . '/js/my-js.js',
       array( 'jquery' ),
       '1.0',
       false );

   wp_enqueue_script( 'my-js-file' );
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

和我的脚本在我的datepicker ui中做了一些调整。但是该脚本一直包含在内,当表单上没有datepicker时,它不知道“datepicker”及其方法。网络比没有背景和其他问题。

我想通了,我可以检查一下,如果表格类的日期字段存在,或者整个插件(它的可视化表单构建器)是否在该页面上,但它不起作用。 Wordpress正在处理该脚本,即使该类不在当前页面上。

我试过很多像

这样的事情
if ($(".visual-form-builder-container")){  

但它仍然在主页面上加载该脚本,此元素不存在。 请帮忙

这是脚本:

if($(".visual-form-builder-container").length > 0) { <-- Im trying to stop that here

    jQuery(document).ready(function($) {
        $.datepicker.setDefaults({
                    firstDay: 1,
                    minDate: 0,
        });    
    });

}

编辑: 也许我找到了一些东西当我在我的脚本中没有任何“if”打开我的网站并检查chrome控制台时,有:Uncaught TypeError:无法调用undefined方法'setDefaults' 因此,如果我可能需要类似的东西:if是方法定义而不是它应该工作但我不知道任何函数,那检查方法....

1 个答案:

答案 0 :(得分:0)

好的,可能已经解决了。 我刚刚添加了try和catch到脚本(这是我的代码):

jQuery(document).ready(function($) {
   try{
     $.datepicker.setDefaults({
            firstDay: 1,
            minDate: 0,
     });     
     $( '#vfb-datum-75' ).datepicker({
            beforeShowDay:  ..........,
     }); 
   }catch(err){

   }    
});

所以现在它可以工作,当一切都好,当某些东西未定义时,它什么都不做,那就好了 无论如何,谢谢你的帮助;)