2015-04-07 2 views
1

У меня есть этот блок кода, где я создаю два элемента ссылку на веб-странице и добавление событие щелчка к ним:Javascript неожиданный маркер}

function createNewChat(){ 
    //alert("new chat fired"); 
    var roomName = document.getElementById("roomName").value 
    if (roomName){ 
     resetErrorLog();   
     $('#createRoom').append('<p>would you like to password protect this room?</p>'); 
     $('#createRoom').append('<div><a href="#" onclick="newChatHelper("yes")"> yes </a></div>'); 
     $('#createRoom').append('<div><a href="#" onclick="newChatHelper("no")"> no </a></div>'); 
    } 
    else { 
    document.getElementById("errorlog").innerHTML = "<p>The room name input box seems to be empty</p>"; 
    } 
    } 

DOM-обновляющий правильно, но когда я нажимаю link Я получаю неожиданный токен} в строке 2, который является тегом. Этот блок кода намного позже в файле. Вспомогательный метод не запускается вообще, поэтому я уверен, что проблема связана с этим кодом. Помощь очень ценится.

+0

Проверьте ссылку и посмотреть, что HTML 'OnClick = "newChatHelper (" нет ")"' превращается (подсказка: посмотрите на кавычки). –

ответ

5

onclick="newChatHelper("yes")" является ссылкой на вопрос в HTML

Вы должны использовать onclick="newChatHelper('yes')" — Обратите внимание на одиночные кавычки в вызове функции

Но поскольку у вас уже есть это в одной цитаты, вам нужно избежать внутренней одинарные кавычки, например:

'<div><a href="#" onclick="newChatHelper(\'yes\')"> no </a></div>' 

Вы также могли бы рассмотреть не с помощью атрибута onclick на всех

$('#createRoom').append(
    $('<a href="#">yes</a>').click(function(event) { 
    newChatHelper("yes"); 
    event.preventDefault(); 
    }).wrap('<div/>').parent() 
); 

ИЛИ

$('#createRoom').append(
    $('<div></div>').append(
    $('<a href="#">yes</a>').click(function(event) { 
     newChatHelper("yes"); 
     event.preventDefault(); 
    }) 
) 
); 
+0

Да. Я думаю, что это глубже. Одинарная кавычка будет нарушать внешние кавычки – slebetman

+0

, что одинарные кавычки также используются;) – skip405

+0

Возможно, вам захочется показать, как вставлять одинарные кавычки в строковый литерал. –

-6
var roomName = document.getElementById("roomName").value 

Возможно, вы захотите закрыть это;

var roomName = document.getElementById("roomName").value; 
+2

Это не причина ошибки. Точки с запятой в большинстве случаев являются необязательными. –

-6
var roomName = document.getElementById("roomName").value 

от вар roomName = document.getElementById ("roomName") значение.

+0

Это не причина ошибки. Точки с запятой в большинстве случаев являются необязательными. –

+0

Это даже не синтаксическая ошибка. Это просто плохая практика. Но это действительно javascript – slebetman

Смежные вопросы