我有以下代码我正在尝试更改文本字体的字体,但它不断出现页面错误。
function edit_font(div_id) {
$("#testsave").html(<strong onclick=\"javascript:save_font_stuff("+div_id+",font,'Arial')\">Done!</strong>
}
function save_font_stuff(div_id,font_setting,settings_vaule) {
if(font_setting=="font"){
$("#"+div_id).css('font',settings_vaule);
}else if(font_setting=="size"){
$("#"+div_id).css('fontSize', settings_vaule);
}else if(font_setting=="colour"){
$("#"+div_id).css('color',settings_vaule);
}
}
答案 0 :(得分:1)
您的onclick
事件处理程序不传递字符串作为其第二个参数。尝试将font
参数包围为字符串。
function edit_font(div_id) {
$("#testsave").html('<strong onclick="javascript:save_font_stuff(\"'+div_id+'\",\'font\',\'Arial\')">Done!</strong>');
}
答案 1 :(得分:1)
在这种情况下突出显示它的语法,你必须将一个字符串传递给.html()
(或者至少在这种情况下),所以它需要这样的引号:
function edit_font(div_id) {
$("#testsave").html("<strong onclick=\"javascript:save_font_stuff("+div_id+",'font','Arial')\">Done!</strong>");
}
字符串周围缺少的引号和调用中的font
变量周围都会抛出错误。您是否考虑过使用非内联事件处理程序?例如:
function edit_font(div_id) {
$("#testsave").empty().append(
$("<strong>Done!</strong>").click(function() {
save_font_stuff(div_id,'font','Arial');
})
);
}
你也可以简化其他功能,如果不是简单地折叠它,就像这样:
var setting_map = { font: 'font', size: 'fontSize', colour: 'color' };
function save_font_stuff(div_id, setting, vaule) {
$("#"+div_id).css(setting_map[setting], vaule);
}