2012-01-17 53 views
1

此代碼可以很好地將一個參數發送到javascript函數,但是當我添加第二個參數時,它不會。 onclick="open_livemass(\"Devotion\",'+devotion_channel.idx+');"。這是將這些參數發送給函數的正確方法嗎?一個參數是靜態的。另一個,devotion_channel.idx,由創建HTML的javascript決定。將參數發送到HTML函數的javascript函數

show_devotion_alert = '<span style="cursor:pointer;"'+ 
    'onclick="open_livemass(\"Devotion\",'+devotion_channel.idx+');"><br/>'+ 
    devotion_name+' '+time_info+'<br/>('+devotion_channel.name+')</span>'; 

$('#Devotion_alert').html(show_devotion_alert); 

回答

2

你混合報價風格

'onclick="open_livemass(\'Devotion\',' + devotion_channel.idx + ');" 

但是,爲什麼不這樣做:

show_devotion_alert = '<span id="newSP" style="cursor:pointer;"><br/>'+ 
    devotion_name+' '+time_info+'<br/>('+devotion_channel.name+')</span>'; 

$('#Devotion_alert').html(show_devotion_alert); 

$("#newSP").click(function() { 
    open_livemass("Devotion", devotion_channel.idx); 
}); 

或者更好的是:

show_devotion_alert = $('<span />').css("cursor", "pointer").html("<br/>" + 
    devotion_name + ' ' + time_info + '<br/>(' + devotion_channel.name + ')'); 

show_devotion_alert.click(function() { 
    open_livemass("Devotion", devotion_channel.idx); 
}); 

$('#Devotion_alert').html(show_devotion_alert); 
+0

直接事件綁定是_always_比編碼'在HTML字符串onclick'屬性更好。 – 2012-01-17 18:33:12

+0

看起來問題是'',在引號中出現錯誤的地方。其他幾個人有關於使用點擊事件的建議。這就說得通了。 – user823527 2012-01-17 18:34:39

+0

@ user823527 - 是的 - 試圖插入點擊處理程序就像這是痛苦的 - jQuery使它更容易。 – 2012-01-17 18:35:49

0

試試這個:

show_devotion_alert = "<span style=\"cursor:pointer;\" onclick=\"open_livemass(\"Devotion\","+devotion_channel.idx+");\"><br />"+devotion_name+" "+time_info+"<br />("+devotion_channel.name+")</span>"; 
0

我建議你試試這個。

var show_devotion_alert = '<span style="cursor:pointer;"><br />' 
         + devotion_name + ' ' + time_info + '<br />(' 
         + devotion_channel.name + ')<span/>'; 


$('#Devotion_alert').html(show_devotion_alert) 
.find('span') 
.click(function(){ 
    open_livemass('Devotion', devotion_channel.idx); 
}); 
+1

看起來像分別指定點擊是解決問題的好方法。 – user823527 2012-01-17 18:42:14

1
$('#Devotion_alert').empty().append($("<span>", { 
    css: { 
     cursor: "pointer" 
    }, 

    html: "<br />" + devotion_name + " " + time_info + "<br />", 

    click: $.proxy(open_livemass, this, "Devotion", devotion_channel.idx) 
})); 
+0

好的提示是在創建新元素時整齊地指定css,html和事件。 – user823527 2012-01-17 18:41:31

相關問題