在动态创建的html中嵌入javascript对象

时间:2012-11-26 21:27:28

标签: javascript jquery

我有一个接收一系列项目的js函数。该函数本身使用对jquery html函数的调用动态地创建html内容。问题是我不记得如何在附加的html中正确嵌入数组。例如,

var ErrorsNotifier = {
   init: function(items) {
        var template = '<div id="message">'; 
        template += '<div id="id">some message.<br /><br />'; 
        template += '<div class="errorsList">error desc</div></div>'; 
        template += '<a href="#" class="goback" onclick="ErrorsNotifier.Back("+items+");"></a>'; 
        template += '<a href="#" class="proceed" onclick="ErrorsNotifier.Next();"></a>'; 
        template += '<input type="image" src="someimage" alt="" class="" onclick="window.open("someurl");"/></div>'; 
        $("#content").html(template);
   }
}

将html渲染到正文后,单击锚标记会返回以下错误 - Uncaught SyntaxError: Unexpected identifier

检查浏览器中的锚标记将显示以下内容

a href="#" class="goback" onclick="ErrorsNotifier.Back([object Object]);"

2 个答案:

答案 0 :(得分:2)

尝试

var ErrorsNotifier = {
   init: function(items) {
       ...
       var $template = $(template);
       $template.find('a.goback').on('click', function(){ErrorsNotifier.Back(items);});
       $("#content").empty().append($template);
   }
}

注意我使用.on()来附加事件处理程序。

答案 1 :(得分:0)

var ErrorsNotifier = {
 init: function(items) {
    var template = '<a href="#" class="goback" onclick="ErrorsNotifier.Back(\''+items+'\');">Link</a>';
    $("#content").html(template);
   },
 Back: function(x){ alert(x); }
};

检查