这是我的代码:
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);
答案 0 :(得分:1)
你需要逃避内在的单引号:
jQuery("#"+code+"_2").after("<a href='#' id='"+code+"_3' onclick='addfunction(\'"+code+"\', event); return true;'><img src='special.gif' border='0'></a>");
答案 1 :(得分: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;
});
}
我没有测试过代码,但你明白了。
答案 2 :(得分:1)
这个有效!尽量避免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);
答案 3 :(得分: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>");