На моем сайте я использую событие onclick по ссылке для вызова функции javascript (ссылки находятся в цикле WHILE из внешнего php-файла). Onclick из цикла php WHILE передает изображение пользователя и имя пользователя в функцию javascript, называемую ShowUser(). Событие правильно генерирует имя и фотографию и помещает его в innerHTML из DIV следующим образом:Как передать динамически сгенерированную переменную функции внутри innerHTML функции javascript?
<script language="javascript" type="text/javascript">
function ShowUser(userpic,username) {
var TitleDesc1 = 'Click this photo to learn more about '+username+'';
document.getElementById('UserPicHolder').innerHTML = '<img class="TipTip"
title="'+TitleDesc1+'" src="'+userpic+'" style="width:60px; height:66px" alt="user
picture">';
}
</script>
Это работает правильно. Тем не менее, когда я пытаюсь сделать картинку пользователя кликабельной (onclick # 2) (добавив href), чтобы показать статистику сайта пользователя, функция не открывает окно статистики (div, который должен быть скрыт до тех пор, пока onclick # 2 (DisplayUserStats) в яваскрипте функции):
<script language="javascript" type="text/javascript">
function ShowUser(userpic,username) {
var TitleDesc1 = 'Click this photo to learn more about '+username+ '';
document.getElementById('UserPicHolder').innerHTML = '<a href="#null"
onclick="DisplayUserStats("'+username+'")"><img class="TipTip" title="'+TitleDesc1+'"
src="'+userpic+'" style="width:60px; height:66px" alt="user picture"></a>';
}
</script>
Абонентская Статистика Box ДИВ становится видимыми, как и следовало ожидать, когда функция DisplayUserStats() пусто (как DisplayUserStats()), но, конечно же, статистика не определена, так как не имя пользователя была определена. Только когда в DisplayUserStats() помещается, казалось бы, ЛЮБОЙ контент, который не раскрывает div окна статистики (например, DisplayUserStats (dummystring) не открывает div Stats. Обратите внимание, что я пробовал несколько других конкатенаций (считая, что я сделал это неправильно) например, + имя пользователя + '+ имя пользователя + имя пользователя и т.д. может кто-то пожалуйста, пролить некоторый свет на то, как переменная имя пользователя могут быть переданы в функции DisplayUserStats()?
Сложно сказать, что именно вы пытаетесь сделать здесь. – Pointy
Я хочу передать имя пользователя функции DisplayUserStats(). Я могу передать имя пользователя для функций, вызываемых вне innerHTML, но я не могу передать имя пользователя в DisplayUserStats(), функцию, которая вызывается внутри innerHTML. –
Хорошо проверите @ bfavaretto ответ - также если эта строка с обновленным контентом действительно разбита на несколько строк в вашем реальном источнике, ну, вы не можете этого сделать. – Pointy