JQuery函数在开发人员控制台中工作,但在其他情况下不起作用

时间:2015-06-26 作者:Peter Noges

有人能帮我利用原生wordpress jquery来运行我的函数吗?我所做的唯一工作测试是通过chrome开发控制台加载外部jquery资源,然后将我的函数添加到inspect元素控制台。

工作测试:将其添加到控制台:

if(!window.jQuery||confirm(\'Overwrite\\x20current\\x20version?\\x20v\'+jQuery.fn.jquery))    
(function(d,s){s=d.createElement(\'script\');
s.src=\'https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.js\';
(d.head||d.documentElement).appendChild(s)})(document);
然后将我的功能添加到控制台:

$(function() {
    var $sidebar   = $("#post-43 > div > div > div.row.caldera-clarity-row.caldera-clarity-row-1 > div.caldera-clarity-column.col-sm-3"), 
        $window    = $(window),
        offset     = $sidebar.offset(),
        topPadding = 15;

    $window.scroll(function() {
        if ($window.scrollTop() > offset.top) {
            $sidebar.stop().animate({
                marginTop: $window.scrollTop() - offset.top + topPadding
            });
        } else {
            $sidebar.stop().animate({
                marginTop: 0
            });
        }
    });
});
问题是:你能通过Wordpress的原生jquery库帮助我实现同样的功能吗?该功能只需在/课程页面上运行即可。我不确定我的函数是否受本机wp jquery支持,或者我只是不正确地将其添加到页面中。

假设我读过这两篇文章:代码。塔斯普卢斯。com/articles/wordpress正确使用javascript的完整指南——wp-32172http://codex.wordpress.org/Function_Reference/wp_register_script#Handles_and_Their_Script_Paths_Registered_by_WordPress

非常感谢,

1 个回复
最合适的回答,由SO网友:Richard Carls 整理而成

正如托肖所指出的,使用jQuery(document).ready(function($) { ... }); 而不是$( function() { ... });

编辑:主要问题是WP富文本编辑器转义html<script> 标签。看见https://codex.wordpress.org/Using_Javascript 在页面底部,使用基于插件的变通方法关闭特定帖子/页面的格式化,允许您插入代码。

或者,将JavaScript添加到适当的模板文件中,或在函数中排队。php作为外部脚本。

结束

相关推荐

为什么不在插件中包含对/wp-admin/admin.php的引用

联系表单7最近推出了一个更新,导致其他插件出现一些冲突。WPCF7的作者解释说,这是因为插件包括对wp-admin/admin.php 在他们的脚本中,你不应该在插件中这样做。Takayuki Miyoshi 解释它here 但我不确定我是否完全理解为什么这会引起任何问题,或者这与打电话给say有什么不同wp-load.php.有人能解释一下为什么建议不要加载wp-admin/admin.php 在你的插件中,它是如何引起问题的?