Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 为什么我不能从2个函数内部调用该函数?_Javascript_Jquery_Function - Fatal编程技术网

Javascript 为什么我不能从2个函数内部调用该函数?

Javascript 为什么我不能从2个函数内部调用该函数?,javascript,jquery,function,Javascript,Jquery,Function,这是我的代码: inserisciMarker(); function scorriAllaLista(param) { alert(param); } function inserisciMarker() { markerClick = function () { $('#example').attr("onclick", "scorriAllaLista('hello'); return false;"); }; markerClick(

这是我的代码:

inserisciMarker();

function scorriAllaLista(param) {
    alert(param);
}

function inserisciMarker() {
    markerClick = function () {
        $('#example').attr("onclick", "scorriAllaLista('hello'); return false;");
    };

    markerClick();
}
单击链接,未捕获引用错误:未定义SCORRIALLALLISTA


为什么??如何修复它?

这不是使用jQuery绑定事件处理程序的方式

替换

$('#example').attr("onclick", "scorriAllaLista('hello'); return false;");


如果确实必须按此方式执行,则可以将该方法添加到全局窗口对象,如下所示:

window.scorriAllaLista = function(param) {
    alert(param);
}
-将方法添加到窗口


由于您已经在使用return false,您可能会使用a href=As return false;已经停止传播并防止默认行为。

很可能它没有全局定义。window.scorriAllaLista=scorriAllaLista为什么要用javascript设置onclick属性而不是绑定事件?不应该使用attr添加事件处理程序@两者:我不能,因为这个未解决的问题:谷歌地图似乎删除了所有的处理程序。。所以我不能连接它!它不会删除处理程序,您只是错过了解释结果。事件根本不会冒泡,因为谷歌地图会在它们到达身体之前阻止它们。您在上一个问题中已经解释了这一点,请使用google maps api绑定事件。这就是为什么他们最终包含了该功能。正确答案,可能是最简单的解决方案/ninjad:在这种情况下,返回false是多余的。@AndreasGrech我不明白为什么。返回false告诉jQuery停止事件的传播并防止默认的单击行为。根据OP的意愿,它可能会有用。@AndreasGrech:OP在原始代码中使用了return false,因此针对OP的原始问题的注释可能会更好?@markzzz您的问题不清楚?您是否试图将代码注入来自另一个来源的iframe?+1,因为这解决了OP的实际问题,这与最初所说的有些不同。我使用动态函数测试了一个简单的变体,从而避免了参数。但是为什么我需要向dom中添加函数呢?函数应该在函数中可见。@markzzz:我不是100%确定,但它确实与从onclick属性中调用方法有关。我不知道内部函数,但您收到的错误消息表明执行预期scorriAllaLista在全局级别上可访问。正如“答案”所示,使用.click将在不将方法添加到窗口的情况下工作,但您无法按照您在评论中所述的方式进行操作。
window.scorriAllaLista = function(param) {
    alert(param);
}