如何让 jQuery 在管理区域工作?
Posted
技术标签:
【中文标题】如何让 jQuery 在管理区域工作?【英文标题】:How to make jQuery work in admin area? 【发布时间】:2013-03-29 06:05:33 【问题描述】:我在 WordPress 的主题选项页面中包含了 Twitter Bootstrap,以帮助设置主题选项页面的样式。之前,当我取消注册 jQuery 并添加我自己的版本时,所有代码都在使用 $
,因为我不必担心 WordPress 总是将 jQuery
附加到所有内容,我可以使用$
并完成它。
不幸的是,您不应该取消注册 jQuery,即使它只在您自己的管理页面上完成。
所以我四处寻找一些仍然在 jQuery 中使用 $
的方法并写下:
(function($)
$(document).ready(function()
$('.posts').click(function()
if ($(this).attr("id") == "list")
$('.sectionLists').show();
else
$('.sectionLists').hide();
);
);
)(jQuery);
没有控制台错误 - 在我的代码中,但我的 Twitter Bootstrap javascript 依赖函数都不起作用,例如 Popovers、Tabs 或其他任何类似性质的函数,并且上面的代码甚至不起作用。
但是,如果我将它粘贴到 Chrome 控制台并按 Enter 键,它会正常工作。
怎么了?
【问题讨论】:
【参考方案1】:您可能正在尝试在加载 jQuery 之前调用它——这就是它在页面中不起作用但在控制台中起作用的原因。
您是否添加了如下所示的 jQuery 依赖项,如 Codex 中的 wp_enqueue_script
所示?
function iamb_inc_bootstrap()
wp_register_script(
'js_bootstrap',
get_template_directory_uri() . '/bootstrap/js/bootstrap.min.js',
array('jquery'),
'20130219',
true
);
wp_enqueue_script('js_bootstrap');
add_action('wp_enqueue_scripts', 'iamb_inc_bootstrap');
【讨论】:
【参考方案2】:忽略排队脚本和样式表的correct way,这就是我一直这样做的方式:
add_action( 'admin_footer', 'wpse_46677_change_menu_item' );
function wpse_46677_change_menu_item()
?>
<script type="text/javascript">
jQuery(document).ready( function($)
$( "#menu-appearance" )
.find( "li:contains( 'Header' )" )
.html( '<a href="themes.php?page=custom-header">My Text</a> ');
);
</script>
<?php
来自this WordPress Answer。
【讨论】:
以上是关于如何让 jQuery 在管理区域工作?的主要内容,如果未能解决你的问题,请参考以下文章