JQuery在微件后端不起作用

时间:2014-01-23 作者:Julian F. Weinert

我创建了一个小部件,它应该使用jQuery在两个视图之间切换,并实现jQuery UI日期选择器。

我想知道为什么我的jQuery代码不起作用,因为我注意到日期选择器也不起作用。控制台既不抛出错误也不抛出警告。

这是我在widget类中的代码:

function form($instance) {
    wp_enqueue_script(\'jquery-datepicker\', get_bloginfo(\'template_url\').\'/styles/jquery-ui-1.10.4.custom.min\', array(\'jquery\', \'jquery-ui-core\'));
    wp_enqueue_style(\'jquery.ui.theme\', get_bloginfo(\'template_url\').\'/styles/jquery-ui.css\');
}
是否存在任何已知问题?还是我必须考虑一些事情?

EDIT

这是一个主后端脚本:

$(document).ready(function() {
    $(\'#widget-so_calendar_excerpt-range_from\').each(function() {
        console.log(this);
        $(this).datepicker({dateFormat: \'dd.mm.yyyy\'});
    });
});
这里发生了一些非常奇怪的事情。当我重新加载管理面板时,每当控制台日志更改时。如下所示(每行一页重新加载):

[Log] <input class=​"widefat hasDatepicker" id=​"widget-so_calendar_excerpt-range_from" name=​"widget-so_calendar_excerpt[range_from]​" type=​"text">​ (backend.js, line 28)
[Log] input#widget-so_calendar_excerpt-range_from.widefat (backend.js, line 28)
[Log] <input class=​"widefat hasDatepicker" id=​"widget-so_calendar_excerpt-range_from" name=​"widget-so_calendar_excerpt[range_from]​" type=​"text">​ (backend.js, line 28)
[Log] input#widget-so_calendar_excerpt-range_from.widefat (backend.js, line 28)
[Log] <input class=​"widefat hasDatepicker" id=​"widget-so_calendar_excerpt-range_from" name=​"widget-so_calendar_excerpt[range_from]​" type=​"text">​ (backend.js, line 28)
[Log] input#widget-so_calendar_excerpt-range_from.widefat (backend.js, line 28)
在DOM中,新类hasDatepicker “从不获取”已添加。

2 个回复
SO网友:T.Todua

在许多情况下,您可以在后端使用:

jQuery(\'#something\')
而不是

$(\'#something\')

SO网友:FFrewin

看起来这可能是一个选择器问题。尝试使您的选择器对侧栏中的小部件更加具体:

类似于:

$(“#widgets right#widget-so\\u calendar\\u extract-range\\u from”)

可能有用。

但是,如果创建小部件的第二个实例,它可能会再次中断,因为有多个相同的ID。

结束