javascript - 单击按钮时的调用功能不起作用

标签 javascript php wordpress

我想在按钮单击事件上调用函数。该函数是在另一个 js 文件中定义的,我将该文件放入我的 function.php 文件中。我可以看到该文件已从enqueue加载。但我得到了错误

errorReferenceError: myFunction is not defined

当我点击那个按钮时。我想在该按钮单击时显示下拉菜单

<button onclick="jQuery(document).ready(function($) {myFunction();});" class="dropbtn"><i class="fa fa-bars fa-lg" aria-hidden="true"></i></button>

自定义.js

(function( $ ) {

    function myFunction() {

        document.getElementById( 'myDropdown' ).classList.toggle( 'show' );

    }

    window.onclick = function( event ) { 

        if ( !event.target.matches( '.dropbtn' ) ) {

        var dropdowns = document.getElementsByClassName( 'dropdown-content' );
        var i;

            for ( i = 0; i < dropdowns.length; i++ ) {

                var openDropdown = dropdowns[i];

                if ( openDropdown.classList.contains( 'show' ) ) {

                    openDropdown.classList.remove( 'show' );

                } 

            } 

        }

    }

})( jQuery );

最佳答案

问题在于函数的范围,有关更详细的说明,请参阅 this link 。要解决此问题,请尝试调用 js 文件本身中的函数。例如:

$(document).ready(function(){
    function myFunction(){
    ...
    }

    $(".dropbtn").click(myFunction());
});

关于javascript - 单击按钮时的调用功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41633887/

相关文章:

javascript - 如何拦截onclick事件

javascript - 在 XMLHttpRequest 中接收 102 http 状态

php - WooCommerce 添加商品到订单

php - 按上一周星期一和下周星期一之间最喜欢和发布的顺序排序

javascript - 具有大型 JSON 数组的 AngularJs

php - 作为库分发时如何避免PHP类名冲突?

php - 如何在where条件下传递数组?拉维尔 5.3

php - 具有 k/v 对和未知数字的 PDO?

php - 如何在WordPress页面模板中显示分类帖子?

javascript - 如何使 jquery click() 与 css 按钮一起使用?