Рендеринг якорной ссылки с помощью json2html

Я пытаюсь сделать якорь с помощью json2html со следующим преобразованием:

'renderTimeline':[  {
    tag: "a",  
    class: "btn btn-warning btn-circle", 
    style: "float: right;", 
    html: "<i class=\"icon-remove\"></i>",
    "href": function() {
        var myhref = "javascript:delSchedule(" + this + ");";
        return myhref;
    }
}]

намерение состоит в том, чтобы удалить объект json, который передается ему с помощью:

$('#sunTimeLine').json2html(sched1.sunday, transforms.renderTimeline, {'events':true});

Я получаю следующее как o/p на рендеринг HTML:

<a class="btn btn-warning btn-circle" style="float: right;" href="javascript:delSchedule([object Object]);"><i class="icon-remove"></i></a>

когда я нажимаю на ссылку (кнопку), я получаю сообщение в консоли браузера:

SyntaxError: missing ] after element list

Пожалуйста, помогите мне решить эту проблему.

4 ответа

Решение

Следующий код решил мою проблему:

'renderTimeline':[  {
    tag: "a",  
    class: "btn btn-warning btn-circle", 
    style: "float: right;", 
    html: "<i class=\"icon-remove\"></i>",
    "onclick": function(e) {
       delSchedule(e);
   }}
}]

Если я прохожу следующий JSON:

{ monday:[ { startTime:10:00, endTime: 12:00, room_id:cse124 }, { startTime:13:00, endTime: 15:00, room_id:lotus } ] }

Я хочу иметь доступ к "понедельник" в функции delSchedule(). Как мне это сделать? Пожалуйста помоги.

Проверьте документацию для большего количества примеров, но вы должны использовать встроенные события jquery, как так

'renderTimeline':[  {
tag: "a",  
class: "btn btn-warning btn-circle", 
style: "float: right;", 
html: "<i class=\"icon-remove\"></i>",
"onclick": function(e) {
    delSchedule(this);
}}
}]

Обратите внимание, что json2html поддерживает большинство событий jquery, просто добавляя к событию префикс "on", например, onclick, onfocus и т. Д.

{
  tag: "a",  
  class: "btn btn-warning btn-circle", 
  style: "float: right;", 
  html: "<i class=\"icon-remove\"></i>",
  "href": function() {
      var myhref = "javascript:delSchedule(this);";
      return myhref;
    }
}

Предполагая, что вы пытаетесь передать ссылку на выбранный элемент в delSchedule функция, вам нужно изменить href определение как это:

"href": function() {
    var myhref = "javascript:delSchedule(this);"; // note 'this' is part of the string, not concatenated
    return myhref;
}
Другие вопросы по тегам