可变问题&事件监听器问题:Wordpress中的jQuery排队脚本

时间:2016-03-15 05:19:44

标签: javascript jquery wordpress

我已经浏览了几个关于将脚本(包括jQuery)排入Wordpress的困难的Q& A,并且大多数似乎都解决了根本没有找到脚本的麻烦。

我很确定我已经破解了那个坚果,我的脚本似乎被找到并正确加载,但它们的行为并不像传统预期的那样。

这是我在我创建的子主题中的functions.php文件中放置的代码的截断片段:

<?php
function adding_scripts() { 
    wp_register_script('custom_styles', get_template_directory_uri() . '/style.css');
    wp_register_script('custom_scripts', get_stylesheet_directory_uri() . '/jQuery_scripts.js.php', array('jquery'));
    wp_enqueue_script('custom_scripts');
    wp_enqueue_script('custom_styles');
}
add_action( 'wp_enqueue_scripts', 'adding_scripts' );
?>

这已成功排入我的自定义CSS&amp;在某种程度上我的自定义jQuery ...但jQuery没有按预期工作。编码是基本的,与我的能力相当,但应该有效。

必须有一些特定的Wordpress noConflict''缺少的东西

jQuery(document).ready(function( $ ) {
            var variable1 = $(".element1").width();

            $(".element3").css({"width":variable1+"px"});
            $(".element4").click(alert(variable1));
});

没有创建变量,这是第一个问题。

我最初创建的'click'事件,用于测试变量是什么,并发现了一些奇怪的东西。当页面加载时,点击甚至无需点击.element4即可点击。

该警报中的返回值为null

所以问题是:为什么不像通常那样创建变量?为什么在.element4没有点击事件的情况下触发了点击甚至监听器?

1 个答案:

答案 0 :(得分:0)

好吧,幸运的是,在我将脚本排队后大约8到10个小时后,由于未知原因(缓存?),最终创建了变量。我的警报测试确实返回了元素的宽度。

但是,正如评论中所述,我的click();仍然是在没有点击的情况下自发触发的。

作为测试,我改为.on("click",function(){});,这似乎工作正常。我想在Wordpress中安装的jQuery库并不完全,就像在jQuery或Google上链接到远程托管的jQuery库一样。

无论如何,此时没有进一步的问题,虽然我只有一半回答了我自己的问题,但由于我不知道问题的根本原因,我猜一半是关闭的够了。