【发布时间】:2014-01-29 11:02:52
【问题描述】:
我正在为我的 cms 使用 wordpress,并且我正在使用这个很棒的插件 Advanced Custom Fields 将一些自定义字段添加到我的管理员中。
在我的管理员中,一切正常,我使用的是最新的 wordpress 3.8
好的,所以我只想添加一些 jquery 来与我的帖子管理中的选择下拉列表进行交互。此选择下拉菜单由ACF plugin 生成。
ACF 为您提供了一个简单的钩子,可以将脚本和 css 添加到管理面板的头部。 See hook documentation here.
原来是这样……
// WEATHER DATA ICON
function hrc_weather_type_field_icon()
{
?>
<style type="text/css">
body { display: none !important }
</style>
<script type="text/javascript">
(function($){
})(jQuery);
</script>
<?php
}
add_action('acf/input/admin_head', 'hrc_weather_type_field_icon');
以上工作正常。如果我查看源代码,我可以看到上面的标记出现在我的<head>
好的,但如果我这样做......
// WEATHER DATA ICON
function hrc_weather_type_field_icon()
{
?>
<style type="text/css">
</style>
<script type="text/javascript">
(function($){
$('body').empty();
})(jQuery);
</script>
<?php
}
add_action('acf/input/admin_head', 'hrc_weather_type_field_icon');
我仍然可以在我的源代码<head> 中看到这个标记,但是脚本没有触发!!!
并且控制台中没有错误或警告,页面上需要脚本的所有内容都正常工作。
显然我不希望我的<body> 被清空,我只是在测试基本的 API 以实际触发脚本。
下面的脚本是我最初尝试的脚本,但我认为是脚本本身的问题,但后来意识到它实际上不可能有问题后,我开始测试其他基本的jquery API,如.hide, .remove,等等,实际上什么都没有触发!!!
// WEATHER DATA ICON
function hrc_weather_type_field_icon()
{
?>
<style type="text/css">
/* ... */
</style>
<script type="text/javascript">
(function($){
$("#acf-field-weather_data_weather").on('change', 'select', function() {
alert( "Handler for .change() called." );
});
})(jQuery);
</script>
<?php
}
add_action('acf/input/admin_head', 'hrc_weather_type_field_icon');
如果有人对为什么会发生这种情况有任何见解,我会非常感激,因为它让我发疯了:-P
谢谢
【问题讨论】:
标签: jquery wordpress advanced-custom-fields