You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2017-03-01 17:05:24

Bany47
Member
Registered: 2014-11-04
Posts: 28

Problem mit ol trigger-Funktion

Hallo Leute !!

Ich habe folgendes Problem.

In meiner OpenLayers Map befindet sich folgender Trigger zum Vergrößern und Verkleinern von Markern:

var pan4 = new OpenLayers.Control.Button({displayClass: 'fourth', trigger: function markerplus(){   
           
if (vlrot1.length > 0){for (i = 0; i < vlrot1.length;i++){vL_rot1.features(i).style.graphicHeight=vL_rot1.features(i).style.graphicHeight*1.1;
            vL_rot1.features(i).style.graphicWidth=vL_rot1.features(i).style.graphicWidth*1.1; vL_rot1.features(i).style.graphicXOffset=vL_rot1.features(i).style.graphicXOffset*1.1;
            vL_rot1.features(i).style.graphicYOffset=vL_rot1.features(i).style.graphicYOffset*1.1;}}

...

Beim ersten Laden der Map funktioniert der Trigger.

Wenn ich jetzt eine neue Suchen über Ajax laufen lasse und die map mit jquery $(#div).emty(); aus dem DIV entferne und neu lade, funktioniert der Trigger nicht mehr.

Fehlermeldung in Firebug: TypeError: vL_rot1.features(i) is undefined.

Verstehe das nicht so richtig. Ich lösche den Inhalt des DIV's und baue den DOM im DIV neu auf. Liegt es evt. am $(#div).emty();

Kann mir evt. jemand weiterhelfen ?


Danke

Stefan

Offline

#2 2017-03-01 18:26:54

dooley
Member
From: Landkreis Calw
Registered: 2013-11-04
Posts: 899

Re: Problem mit ol trigger-Funktion

a) Code in Zukunft bitte mit den Code-Tags umschliessen - ist einfacher zu lesen
b) .emty() ist keine originale jQuery-Funktion. Meinten Sie ".empty()"?
c) ohne den weiteren Code oder OL zu kennen, ist vL_rot1.features tatsächlich eine Funktion? Runden Klammern = Funktion, eckige Klammern = Array
d) Wenn du den Event-Handler an ein DOM-Elements hängst und das DOM-Element dann löschst, ist der Even-Handler auch weg.

$('#meinDiv').on('click', function(() {...} < meinDiv gelöscht, Event-Handler weg
$(document).on('click', '#meinDiv', function(){...} < meinDiv gelöscht, Even-Handler bleibt (solange "document" nicht gelöscht wird)

e) ist vL_rot1 innerhalb überhaupt sichtbar?

....markerplus(){
  /* 
    Debug: einfügen als erste Zeile innerhalb der Funktion
    Zur Laufzeit dann Browser-Konsole öffnen und nachschauen
  */
  console.log('vL_rot1: ', vL_rot1);
   ...

f) Was soll $(#div) sein? Entweder du hast ein Element mit ID "div", dann gehört Single- oder Doppelqoutes drumrum > $('#div') oder du willst alle div's im DOM ansprechen, dann $('div')


Zum Zustand des deutschen Forums vom geschätzten Netzwolf auch "Pamphlet" genannt
Mein Avatar ist ein Ausschnitt aus "Die Saporoger Kosaken schreiben dem türkischen Sultan einen Brief" (Ilja Repin, gemeinfrei)

Offline

#3 2017-03-02 14:29:25

Bany47
Member
Registered: 2014-11-04
Posts: 28

Re: Problem mit ol trigger-Funktion

Tag !

Erst einmal Danke! für die Rückmeldung.

Eckige Klammern nimmt der Texteditor im Forum nicht an. Sie sind im Code richtig vorhanden.

.emty ist ein Tipfehler und im Original natürlich .empty .

$('#div') ist mein mapdiv, also das div in dem die map eingefügt wird. Mein Problem vielleicht noch einmal in Kürze.

Beim ersten Aufruf wird die ol-map (incl. Trigger) über eine $(function make_map () {...}) im mapdiv eingefügt. Der Trigger funktioniert.

Anschließend wird  der Inhalt von mapdiv mit Hilfe von $('#mapdiv').empty(); gelöscht.

Dann wird der exact gleiche Code über $(function(){$('#mapbutton').click(function() { .. });});  wieder eingefügt. Der Trigger funktioniert nicht mehr. Der Rest der map wird richtig dargestellt.


Gruß Stefan

Offline

#4 2017-03-02 15:05:53

dooley
Member
From: Landkreis Calw
Registered: 2013-11-04
Posts: 899

Re: Problem mit ol trigger-Funktion

Du hast nicht geschrieben, ob console.log('vL_rot1: ', vL_rot1); in der function markerplus() etwas auf die Browser-Konsole ausgibt. Siehe Beitrag #2 e)


Zum Zustand des deutschen Forums vom geschätzten Netzwolf auch "Pamphlet" genannt
Mein Avatar ist ein Ausschnitt aus "Die Saporoger Kosaken schreiben dem türkischen Sultan einen Brief" (Ilja Repin, gemeinfrei)

Offline

#5 2017-03-02 16:13:48

Bany47
Member
Registered: 2014-11-04
Posts: 28

Re: Problem mit ol trigger-Funktion

Die Konsole wirft folgendes aus:

ajax_start.js funktioniert. ajax_suchen.js funktioniert nicht


vL_rot1:  Object { metadata: Object, options: Object, name: " Verw_Negativ", id: "OpenLayers_Layer_Vector_51", div:

<div#OpenLayers_Layer_Vector_51.olLayerDiv>, events: Object, renderer: Object, styleMap: Object, features: Array[6], selectedFeatures:

Array[0], 17 weitere… }  ajax_start.js:159:4


vL_rot1:  Object { metadata: Object, options: Object, name: " Verw_Negativ", id: "OpenLayers_Layer_Vector_385", div:

<div#OpenLayers_Layer_Vector_385.olLayerDiv>, events: Object, renderer: Object, styleMap: Object, features: Array[6],

selectedFeatures: Array[0], 17 weitere… }  ajax_suchen.js:317:4

Offline

#6 2017-03-02 17:47:24

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Problem mit ol trigger-Funktion

Bany47 wrote:

Eckige Klammern nimmt der Texteditor im Forum nicht an. Sie sind im Code richtig vorhanden.

Wieso das denn? ich hab keinerlei Probleme damit.

siehe

test [text in klammern]

x[1]

gruss
walter

Offline

#7 2017-03-03 09:21:58

seichter
Member
Registered: 2011-05-21
Posts: 3,337

Re: Problem mit ol trigger-Funktion

wambacher wrote:
Bany47 wrote:

Eckige Klammern nimmt der Texteditor im Forum nicht an. Sie sind im Code richtig vorhanden.

Wieso das denn? ich hab keinerlei Probleme damit.

siehe

test [text in klammern]

x[1]

Er hatte den Programmtext nicht in einem Code-Block (siehe #2).

Offline

#8 2017-03-03 09:59:48

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Problem mit ol trigger-Funktion

seichter wrote:

Er hatte den Programmtext nicht in einem Code-Block (siehe #2).

jo, und ich hatte die Klammern sowohl im Text - test [text in klammern] - als auch im code-block.

und beides geht.

Offline

#9 2017-03-03 12:11:54

Harald Hartmann
Member
From: 98667 Schönbrunn
Registered: 2014-04-02
Posts: 3,123
Website

Re: Problem mit ol trigger-Funktion

Snip

Last edited by Harald Hartmann (2017-03-03 12:12:22)


Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD

Offline

Board footer

Powered by FluxBB