2013-06-21 3 views
0

Имейте пользовательскую карту (http://atlas.nrcan.gc.ca/site/english/toporama/index.html), и она имеет кнопку увеличения. Этот зум не имеет встроенного события onclick.Имитировать щелчок элемента

Мне нужно иметь div (за пределами карты), а при щелчке => должен имитировать эффект увеличения.

Я попытался это:

onclick="$('#OpenLayers.Control.PanZoomBar_3_zoomin').click()" 

, но это не имеет никакого эффекта.

Эффект масштабирования является своего рода сложным, и я не хочу, чтобы он искал источник, чтобы найти функцию, которую вызывается для масштабирования. Единственное, что мне нужно, это имитировать щелчок, что-то вроде ярлыка кнопки увеличения.

Любые предложения?

+0

Это не Карты Google! – epascarello

ответ

2

АНИ имеет методы, построенные в

OpenLayers объект Карта хранится в глобальной переменной с именем map

Для увеличения:

map.zoomIn(); 

Для уменьшения масштаба изображения:

map.zoomOut(); 
+0

да это работает, спасибо! но что, если это не связано с картами, и я хочу имитировать щелчок с помощью удаленного div? – ihtus

+0

'$ (" # foo "). Trigger (" click ");' – epascarello

0

Я предполагаю, что есть функция где-то, которая инициирует событие масштабирования (в зависимости от того, откуда происходит карта). Вы должны иметь возможность повторно использовать его со своей собственной функцией щелчка.

$('#myElement').click(function(){ 

//callback to zoom function 

}); 

EDIT:

Если вы хотите, чтобы имитировать щелчок, я хотел бы посмотреть на .trigger();

$('#OpenLayers.Control.PanZoomBar_3_zoomin').trigger('click'); 

http://api.jquery.com/trigger/

+0

Эффект масштабирования является своего рода сложным, и я не хочу, чтобы он искал источник, чтобы найти, какую функцию вызывается для увеличения. Единственное, что мне нужно, это имитировать щелчок, что-то вроде ярлыка кнопки увеличения. – ihtus

+0

Хорошо, я обновил свой ответ. Может быть, дайте '.trigger()' попытку. –

+0

.trigger не работает – ihtus

1

Попробуйте $('#OpenLayers\\.Control\\.PanZoomBar_3_zoomin').trigger("click") в функции

EDIT: Вам необходимо удвоить периоды, чтобы вы не пытались выбирать классы.

+0

экранирование является правильным, но кнопка() не работает для кнопки масштабирования ... хотя .html ('aaaa') будет работать ... – ihtus

+0

Да, я сам это заметил. @epascarello имеет правильный ответ, сам тестировал. – sonoftunk

1

Вобще

<script> 
    $(function(){ 
     $('#OpenLayers.Control.PanZoomBar_3_zoomin').click(function(){Do stuff here}) 
    }); 
</script> 
+0

Эффект масштабирования является своего рода сложным, и я не хочу, чтобы он копал источник, чтобы найти, какую функцию вызывается для увеличения. Единственное, что мне нужно, это имитировать щелчок, что-то вроде ярлыка кнопки увеличения. – ihtus

+0

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

+0

Я не думаю, что обработчик события решит проблему запуска щелчка по элементу? – adeneo

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