Есть форма с ID==adminForm
Структура формы:
<div id="elements[<?php echo $element; ?>]" class="select-markers">
<ul>
<li>
<div>
<?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][location]', $marker[location], 'size="60" maxlength="255" title="'.JText::_('Location').'" placeholder="'.JText::_('Location').'"'); ?>
<div class="more-options">
<div class="trigger">
<div>
<div class="advanced button hide"><?php echo JText::_('Hide Options'); ?></div>
<div class="advanced button"><?php echo JText::_('Show Options'); ?></div>
</div>
</div>
<div class="advanced options">
<div class="row">
<?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][name]', $marker[name], 'size="60" maxlength="255" title="'.JText::_('Name').'" placeholder="'.JText::_('Name').'"'); ?>
</div>
<div class="row">
<?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][description]', $marker[description], 'size="60" maxlength="255" title="'.JText::_('Description').'" placeholder="'.JText::_('Description').'"'); ?>
</div>
<div class="row">
<?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][coordinates]', $marker[coordinates], 'size="60" style="width:255px; margin-right:5px;" maxlength="255" title="'.JText::_('Coordinates').'" placeholder="'.JText::_('Coordinates').'"'); ?><strong><a class="coordinates-get" title=" <?php echo JText::_('Get coordinates'); ?>" href="<?php echo $this->app->path->url('elements:yandexmaps/getcoordinates.php?apikey='.$apikey.'&elmnt='.$element); ?>" ><?php echo JText::_('Get coordinates'); ?></a></strong>
</div>
<div class="row">
<?php echo $this->app->html->_('select.genericlist', $icons_option, 'elements['.$element.'][marker][][icon]', 'class="image"', 'value', 'text', $marker[icon]); ?>
</div>
</div>
</div>
</div>
</li>
</ul>
<a class="marker-add" title="<?php echo JText::_('Add Marker'); ?>" href="javascript:void(0);" ><?php echo JText::_('Add Marker'); ?></a>
</div>
Новые элементы добавляются динамически к контейнеру "#elements\\[<?php echo $element; ?>\\] ul" посредством append. Фунцию добавления не привожу, т.к. работчая.
Открываю новое окно:
jQuery(function($) {
$('a.coordinates-get').live('click', function(e) {
e.preventDefault();
w_getcoords = window.open($(this).attr('href'),'','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=620px, height=550px');
if($('#elements\\[<?php echo $element; ?>\\] ul li.selected').length > 0){
if ($('#elements\\[<?php echo $element; ?>\\] ul li.selected') != $(this).closest('li')){
$('#elements\\[<?php echo $element; ?>\\] ul li.selected').removeClass("selected");
$(this).closest('li').addClass("selected");
}
}
else {
$(this).closest('li').addClass("selected");
}
if (window.focus) {
w_getcoords.focus();
}
return false;
});
По клике на ссылку "coordinates-get" открываю окно (w_getcoords), из которого мне нужно получить данные из поля родительского окна - "elements['.$element.'][marker][][coordinates]". Но так как элементов "li" будет много то для их разграничения по клике на ссылку родительскому "li" присваивается класс "selected". Но эта часть функции не работает.
Из открытого окна "w_getcoords" для получения/присвоения данных использую следующее:
var parents = $('#elements\\[<?php echo $element; ?>\\] ul li.selected', window.opener.document);
parents.find('input[name=elements\\[<?php echo $element; ?>\\]\\[marker\\]\\[\\]\\[coordinates\\]]').val(geoPoint.toString());
но последнее не работает, т.к. класс "selected" не присваивается.
Прошу знатоков jQuery помочь. Мучаюсь с данной проблемой уже несколько недель.