(Для дальнейшей информации это относится к той же части работы, что и предыдущий вопрос )
Я создаю систему веб-чата на основе JavaScript с использованием jQuery , чтобы сделать жизнь намного проще. Весь код JavaScript веб-чата находится во внешнем js-файле, на который затем ссылается и создаёт экземпляр HTML-страницы.
<html xmlns="http://www.w3.org/1999/xhtml">
WebchatV3
<div style="float:right;width:300px;" >
<div id="MembersBox">
Members
<ul id="MembersList" >
</ul>
</div>
<div id="QuestionsBox">
Questions
<div id="QuestionsList" >
</div>
</div>
</div>
<div style="margin-right:310px;" id="ChatBox" >
<div id="ChatData">
<ul id="ChatDataList"></ul>
</div>
<div id="ChatInput">
<div id="ChatInputCharRemainText">Characters remaining <span id="ChatInputCharRemain" ></span></div>
<input type="text" maxlength="1000" id="ChatInputTextbox" />
</div>
</div>
</div>
<script type="text/javascript">
var webchat;
webchat = new AvonAndSomerset.WebchatV3(123, 'passcode', false );
</script>
В JavaScript есть код для динамического создания списка активных участников чата из запроса JSON. Этот код создает серию HTML DIV, а затем внедряет этот HTML в DIV «QuestionsList», присутствующий в HTML.
Теперь вот вопрос:)
В каждом вопросе есть элементы с событиями JavaScript onclick, которые позволяют выполнять действия с отображаемым вопросом. Как я могу создать код onclick без жесткого кодирования ссылки на «webchat» - есть ли удобный и приемлемый способ?
Мои первоначальные мысли - передать имя экземпляра экземпляра 'webchat' при его создании, чтобы затем его можно было использовать внутри JavaScript при создании динамического JavaScript ...
Пример кода с жестко закодированной ссылкой на мгновенный «веб-чат»:
<div id="QuestionsBox">
Questions
<div id="QuestionsList">
<div class="Question">
<div class="QuestionInnerControls">
<img src="images/arrow_up.png" alt="" class="ControlIcon" onclick="webchat.Questions.Move(1,1);" >
<img src="images/arrow_down.png" alt="" class="ControlIcon" onclick="webchat.Questions.Move(1,-1);">
<img src="images/delete.png" alt="" class="ControlIcon" onclick="webchat.Questions.Delete(1);">
</div>
<div class="QuestionInnerText">
1) <b>Peter Bridger</b>: This is the question text
<br style="clear: right;">
</div>
</div>
</div>