Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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 当我通过jQuery将传递给函数的functionToCallOnOk附加到回调时,为什么没有调用它?_Javascript_Jquery_Function Pointers - Fatal编程技术网

Javascript 当我通过jQuery将传递给函数的functionToCallOnOk附加到回调时,为什么没有调用它?

Javascript 当我通过jQuery将传递给函数的functionToCallOnOk附加到回调时,为什么没有调用它?,javascript,jquery,function-pointers,Javascript,Jquery,Function Pointers,所以我尝试这样的代码: function showAlertWithCallback(w, h, name, body_text, functionToCallOnOk) { prepareWindow(); var ran_alert_number=Math.random()*50000; $("#alert_content").html(body_text + '<br/>' + '<input type=\"button\" class=\"eBu

所以我尝试这样的代码:

function showAlertWithCallback(w, h, name, body_text, functionToCallOnOk) {
    prepareWindow();
    var ran_alert_number=Math.random()*50000;
    $("#alert_content").html(body_text + '<br/>' + '<input type=\"button\" class=\"eButton\" value=\"Cancel\" onClick=$(\".alert\").hide() />' + '<input id=\"general-alert-'+ ran_alert_number +'\" type=\"button\" class=\"eButton\" value=\"OK\" onClick=\"$(\'.alert\').hide();\"/>');
$('#general-alert-' + ran_alert_number).click(functionToCallOnOk);  
 // also tried $('#general-alert-' + ran_alert_number).click(function(){functionToCallOnOk();});
    showAlertBase(w, h, name);
}
函数showAlertWithCallback(w、h、名称、正文、函数toCallonOK){
prepareWindow();
var ran\u alert\u number=Math.random()*50000;
$(“#警报内容”).html(正文文本+”
“+”; $(“#常规警报-”+运行警报编号)。单击(函数调用警报); //还尝试了$('#常规警报-'+运行警报号); showAlertBase(w、h、名称); }
通过以下方式调用:

showAlertWithCallback(
       600, 
       100 , 
       ('New name for to ' + file_title + ' file.'),
       '<input type="text" style="width:590px" class="text" value=\"' + file_title + '\">', 
       function(){
         alert("hi!");
       }
    );
showAlertWithCallback(
600, 
100 , 
('to'的新名称+文件名+文件名'),
'', 
函数(){
警惕(“嗨!”);
}
);

运行时没有错误(chrome调试器),但在单击“确定”时不会调用该函数。为什么以及如何修复这样的问题?

尝试删除OK按钮的
onClick
属性。

尝试删除OK按钮的
onClick
属性。

Math.random()*50000
将产生一个类似于38518.060150090605的数字,当您在jQuery调用中与
“#general alert-”
连接时,将产生如下选择器:

#general-alert-38518.060150090605
这将被视为一个选择器,用于查找id为
general-alert-38518
和class
060150090605
的元素,因为类名位于点之后

要生成随机数,请使用,例如,
Math.floor(Math.random()*5000)

一个更好的选择是使用递增的全局变量(例如,每次使用它时,
\u global\u counter++
),这样就没有机会获得两个具有相同id的元素

更好的解决方案是在JavaScript中创建实际的DOM元素,将事件附加到这些元素,然后将这些元素插入文档中的正确位置。这样他们就根本不需要ID。

Math.random()*50000
将生成一个类似于38518.060150090605的数字,当您在jQuery调用中与
“\general alert-”
连接时,将生成如下选择器:

#general-alert-38518.060150090605
这将被视为一个选择器,用于查找id为
general-alert-38518
和class
060150090605
的元素,因为类名位于点之后

要生成随机数,请使用,例如,
Math.floor(Math.random()*5000)

一个更好的选择是使用递增的全局变量(例如,每次使用它时,
\u global\u counter++
),这样就没有机会获得两个具有相同id的元素

更好的解决方案是在JavaScript中创建实际的DOM元素,将事件附加到这些元素,然后将这些元素插入文档中的正确位置。这样他们就不需要身份证了