在jquery中更改字体不起作用

时间:2010-08-30 15:20:02

标签: jquery css

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

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

2 个答案:

答案 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);
}