2013-04-04 40 views
0

这里是我的代码:用的OnClick功能jQuery的报价问题

jQuery("#"+code+"_2").after("<a href='#' id='"+code+"_3' onclick='addfunction('"+code+"', event); return true;'><img src='special.gif' border='0'></a>"); 

我得到上调用addFunction一个语法错误(该代码是一个字符串,我试着在报价包装它,但它不。?。工作任何想法

UPDATE ---这工作,但没有通过代码,事件在在功能

function addfunction() { 
alert("THIS WORKS"); 
} 
var myAnchor = $('<a href="#" id="' + code + '_3"><img src="special.gif" border="0"></a>').bind('click', addfunction); 
$('#' + code + '_2').after(myAnchor); 

回答

1

This Works!尽量避免onclick事件,而是使用on()。

首先创建锚点,将click事件绑定到它,然后附加到DOM。

function addfunction(code, event) { 
    alert("THIS WORKS, the code is: " + code); 
} 
var myAnchor = $('<a href="#" id="' + code + '_3"><img src="special.gif" border="0"></a>').bind('click', function(event) { 
    addfunction(code, event); 
}); 
$('#' + code + '_2').after(myAnchor); 
+0

嘿,这个工程,但它看起来并不像它传递的代码和事件在功能 – 2013-04-04 20:08:21

+0

我已经更新我的例子,现在包括代码和事件作为参数 – Sebastian 2013-04-04 20:20:46

+0

宾果...谢谢! – 2013-04-04 20:25:14

1

你需要躲避内单引号:

jQuery("#"+code+"_2").after("<a href='#' id='"+code+"_3' onclick='addfunction(\'"+code+"\', event); return true;'><img src='special.gif' border='0'></a>"); 
+0

我确实做到了,它仍然抛出一个语法错误addunction(上点击。 – 2013-04-04 19:38:37

+0

是什么语法错误说? – Steve 2013-04-04 19:40:07

+0

调用addFunction( ------------^ – 2013-04-04 19:41:32

0

你的问题是在这里addfunction('"+code+"', event)你需要的onnClick值

jQuery("#"+code+"_2").after("<a href='#' id='"+code+"_3' onclick='addfunction(\'"+code+"\', event); return true;'><img src='special.gif' border='0'></a>"); 
1

为了您心中的理智之内逃脱单引号试图重新组织代码:

var insertLink = function(code) { 
    var parent = jQuery('#' + code + '_2'); 
    var a = $('<a/>', { 
     href: '#', 
     id: code + '_3' 
    }).html('<img src='special.gif' border='0'>').on('click', function() { 
     addfunction(code, event); 
     return true; 
    }); 
} 

我没有测试代码,但你明白了。