2013-07-24 6 views
0
$('area').on('mouseover', function() { 
    var territory = $(this).attr('name'); 
    var territoryString = new String(territory); 
    var owner = <%game.getTerritory(territoryString).getOwner().getName(); %>; 

    $('#selection').html(territory); 
}); 
}); 

Я пытаюсь получить данные из объекта Game, который я сохранил как объект JSP. Территория, которую я пытаюсь получить, находится в игровом объекте как список территорий. Есть ли способ передать переменную javascript в качестве параметра? Или мне нужно сделать объект JSP со списком территорий?Переменная Javascript внутри объекта JSP

+1

нет, не так, потому что СПЯ обрабатываются на сервер и javascript на стороне клиента –

+0

Возможный дубликат [Ссылка: Почему код PHP (или другой сервер) в моем Javascript не работает?] (http://stackoverflow.com/questions/13840429/reference-why -does-the-php-or-other-server-side-code-in-my-javascript-not-wor) – Quentin

+0

Решение здесь заключается в использовании запроса ajax, который мог бы отправить выбранную «территорию» на сервер и сервер вернуть значение 'owner' –

ответ

0

Вы не можете напрямую. У вас есть два варианта: Либо загрузив все имена территорий в вашем клиент снял с первым раз при загрузке страницы, а затем задать территорию для конкретного territoryString с помощью этого клиента на сторону объект что-то вроде этого:

var Territories = <% Print a json string map with the territories info with the server side code %> 

$('area').on('mouseover', function() { 
    ..... 
    var owner = Territories[territoryString].name; 
     .... 

проблема с этим методом заключается в том, что ваш клиентский объект не будет актуализирован, если данные сервера изменится.

Другой способ - использовать вызов ajax в вашей функции щелчка, а затем загрузить результат в вашу переменную JavaScript.

Если вы действительно хотите что-то в режиме реального времени, есть некоторая Comercial фреймворка сделать автоматическую SYNCHRO между сервером и клиентом переменным, Exemple: «толкатель»

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