2010-06-01 2 views
1

Обновление: Я попробовал версию сценария без части «beforeContentUpdate», и этот скрипт возвращает следующий JSONJavascript ошибка синтаксиса

{"COLUMNS":["TNAME","TBRIEF","GAMEID","TITLEID","RDATE","GNAME","PABBR","PNAME","RSCORE","RNAME"], 
"DATA":[["Dark Void","Ancient gods known as 'The Watchers,' once banished from our world by superhuman Adepts, have returned with a vengeance.",254,54,"January, 19 2010 00:00:00","Action & Adventure","X360","Xbox 360",3.3,"14 Anos"]]} 

Используя сценарий, который включает в себя «beforeContentUpdate», однако, ничего не возвращает. Я использовал Firebug, чтобы увидеть содержимое div, сгенерированное всплывающей подсказкой, и оно пустое!

Здравствуйте, мне интересно, если кто-нибудь может помочь мне с синтаксической ошибки в строке 14 этого кода: отладчик говорит missing) in parenthetical на var json = eval('(' + content + ')');

// Tooltips for index.cfm 
$(document).ready(function() 
{ 
    $('#catalog a[href]').each(function() 
    { 
     $(this).qtip({ 
      content: { 
      url: 'components/viewgames.cfc?method=fGameDetails', 
      data: { gameID: $(this).attr('href').match(/gameID=([0-9]+)$/)[1] }, 
      method: 'get' 
     }, 
     api: { 
      beforeContentUpdate: function(content) { 
      var json = eval('(' + content + ')'); 
      content = $('<div />').append(
      $('<h1 />', { 
       html: json.TNAME 
       })); 
       return content; 
      } 
     }, 
     }); 
    }); 
}); 

ответ

0

Это оказался еще один случай, когда ColdFusion отладчик, при выводе запроса отладки включен, вызывает АЯКС ошибку. Это одна большая «гоча», которую мы должны помнить при работе с ColdFusion с включенной отладкой. Он разбивает ajax.

2

Вы забывание

+ 

Должно быть:

var json = eval('(' + content + ')'); 
+0

Я добавил «+», но теперь я получаю еще одну ошибку в той же строке, которая говорит «отсутствует» в скобках »- любые идеи? – Mohamad

+1

Дополнительная информация: [ExtJS - SyntaxError: missing) в скобках] (http://stackoverflow.com/questions/1645068/extjs-syntaxerror-missing-in-parenthetical) ... – miku

+1

quote: Пропущенная скобка обычно указывает, что что-то в JSON ошибается. Это может быть дополнительный символ до/после строки. Используйте Firebug, чтобы проверить, что вы возвращаете, и убедитесь, что он не содержит лишних символов. – miku

1

лучшее для этого является www.jslint.com

я бы скопировать и вставить код и показать мне это:

Problem at line 21 character 10: Extra comma.

},

+0

Выбирая запятую, делайте это не иначе, к сожалению! ИТ говорит «проблема в строке 14: eval is evil», какая ошибка? – Mohamad

1

Убедитесь, что вы JSON не имеет никаких дополнительных символов, то JSON должен быть действительным. Проверьте, как возвращается content с простым предупреждением, поэтому ничто не изменит строку.

Кроме того, рассмотрите возможность использования parseJSON from jQuery вместо eval. Цитата:

var obj = jQuery.parseJSON('{"name":"John"}'); 
alert(obj.name === "John");