0

这是我的代码:

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

我在 addfunction( 上遇到语法错误。代码是一个字符串,我尝试将它用引号括起来,但它不起作用。有什么想法吗?

更新 --- 这有效,但不会在函数中传递代码和事件。

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);
4

4 回答 4

1

您需要转义内部单引号:

jQuery("#"+code+"_2").after("<a href='#' id='"+code+"_3' onclick='addfunction(\'"+code+"\', event); return true;'><img src='special.gif' border='0'></a>");
于 2013-04-04T19:32:58.710 回答
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;
   });
}

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

于 2013-04-04T19:45:53.667 回答
1

这行得通!尽量避免 onclick 事件,使用 on() 代替。

首先创建锚点,将点击事件绑定到它,然后附加到 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);
于 2013-04-04T19:53:29.593 回答
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>");
于 2013-04-04T19:33:06.117 回答