2

我在 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”及其方法。Web比没有背景和其他问题。

我发现,我可以检查表单日期字段的类是否存在或整个插件(其可视表单构建器)是否在该页面上,但它不起作用。即使课程不在当前页面上,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: Cannot call method 'setDefaults' of undefined 所以如果我可能需要类似的东西:如果方法已定义并且它应该可以工作但我不知道任何检查方法的功能....

4

1 回答 1

0

好的,可能解决了它。我刚刚在脚本中添加了 try and catch (这是我的代码):

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

   }    
});

所以现在它可以工作了,当一切正常且未定义时,它什么也不做,这很好无论如何感谢您的帮助;)

于 2013-03-15T22:57:26.237 回答