Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击按钮时的调用功能不起作用_Javascript_Php_Wordpress - Fatal编程技术网

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

Javascript 单击按钮时的调用功能不起作用,javascript,php,wordpress,Javascript,Php,Wordpress,我想在按钮点击事件中调用一个函数。该函数在另一个js文件中定义,我在function.php文件中有enqueue该文件。我可以看到该文件已从排队加载。但我犯了个错误 errorReferenceError:未定义myFunction 当我点击那个按钮时。我想在那个按钮上显示下拉菜单 <button onclick="jQuery(document).ready(function($) {myFunction();});" class="dropbtn"><i class="f

我想在按钮点击事件中调用一个函数。该函数在另一个js文件中定义,我在
function.php
文件中有
enqueue
该文件。我可以看到该文件已从
排队
加载。但我犯了个错误

errorReferenceError:未定义myFunction

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

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

custom.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 );
(函数($){
函数myFunction(){
document.getElementById('myDropdown').classList.toggle('show');
}
window.onclick=函数(事件){
如果(!event.target.matches('.dropbtn')){
var dropdowns=document.getElementsByClassName('dropdown content');
var i;
对于(i=0;i
问题在于功能范围,有关详细说明,请参阅。要解决此问题,请尝试在js文件本身中调用该函数。例如:

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

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

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

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

    $(".dropbtn").click(myFunction());
});
应该有用

$(document).ready(function(){
    function myFunction(){
        alert ('Say something!');
    }

    $(".dropbtn").click(function(){
        myFunction();
    });
});
应该有用

$(document).ready(function(){
    function myFunction(){
        alert ('Say something!');
    }

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

我注意到您不需要在按钮的
onclick
属性中使用
ready
功能,因此这就足够了:

<button onclick="myFunction();" class="dropbtn">
  <i class="fa fa-bars fa-lg" aria-hidden="true"></i>
</button>

我注意到您在某些部分不使用
$
,您可以将它们全部替换为
jQuery
关键字。

我注意到您不需要在按钮的
onclick
属性中使用
ready
函数,因此这就足够了:

<button onclick="myFunction();" class="dropbtn">
  <i class="fa fa-bars fa-lg" aria-hidden="true"></i>
</button>

我注意到您在某些部分不使用
$
,您可以用
jQuery
关键字替换它们。

显示的问题相同您确定将函数和调用都放在同一jQuery函数中吗?请尝试引用和其他类似问题。这是一个简单的修复方法,但您只需要知道密钥。显示的问题相同您确定将函数和调用都放在同一个jQuery函数中吗?请尝试引用和其他类似问题。这是一个简单的修复方法,但您只需要知道密钥。只需将
myFunction
从外部写入
$(function(){})
。您的锚属性应该是
onclick=returnmyfunction()只需将
myFunction
从外部写入
$(function(){})
。您的锚属性应该是
onclick=returnmyfunction()