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
和class060150090605
的元素,因为类名位于点之后
要生成随机数,请使用,例如,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
和class060150090605
的元素,因为类名位于点之后
要生成随机数,请使用,例如,Math.floor(Math.random()*5000)
一个更好的选择是使用递增的全局变量(例如,每次使用它时,\u global\u counter++
),这样就没有机会获得两个具有相同id的元素
更好的解决方案是在JavaScript中创建实际的DOM元素,将事件附加到这些元素,然后将这些元素插入文档中的正确位置。这样他们就不需要身份证了