2010-08-30 46 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>'); 
}