2012-01-17 96 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