2010-08-30 47 views
0

我有以下代码我正在尝试更改文字的字体,但它不断出现页面错误。更改jQuery中的字体不工作

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

有什么错误? – Marko 2010-08-30 15:23:00

回答

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); 
} 
1

onclick事件处理程序传递一个字符串作为其第二个参数。尝试围绕字符串的font参数。

function edit_font(div_id) { 
$("#testsave").html('<strong onclick="javascript:save_font_stuff(\"'+div_id+'\",\'font\',\'Arial\')">Done!</strong>'); 
}