มากกว่า

ฉันจะให้ค่าป๊อปอัปเปลี่ยนแปลงได้อย่างไรเมื่อฉันคลิกที่คุณสมบัติอื่นโดยไม่ต้องคลิกบนพื้นที่แผนที่ที่ไม่มีคุณสมบัติก่อน

ฉันจะให้ค่าป๊อปอัปเปลี่ยนแปลงได้อย่างไรเมื่อฉันคลิกที่คุณสมบัติอื่นโดยไม่ต้องคลิกบนพื้นที่แผนที่ที่ไม่มีคุณสมบัติก่อน


ฉันกำลังทำงานกับ openLayers 3 ซึ่งเป็นสิ่งใหม่สำหรับฉัน และฉันสามารถเพิ่มป๊อปอัปลงในแผนที่ของฉันที่ปรากฏขึ้นเมื่อคุณคลิกที่คุณลักษณะในเลเยอร์เวกเตอร์ ปัญหาคือเนื้อหาป๊อปอัปไม่อัปเดตเมื่อคุณคลิกที่คุณสมบัติอื่น คุณต้องคลิกบนพื้นที่ที่ไม่มีฟีเจอร์เพื่อปิด จากนั้นคลิกคุณสมบัติอื่นเพื่อรีเฟรชเนื้อหาป๊อปอัป ฉันต้องการให้เนื้อหาป๊อปอัปอัปเดตเมื่อคุณคลิกที่คุณลักษณะใหม่ โดยไม่ต้องคลิกบริเวณที่ไม่มีคุณลักษณะก่อน มีวิธีที่ฉันสามารถทำได้หรือไม่? นี่คือรหัสสำหรับป๊อปอัปที่ฉันใช้:

map.on ('คลิก', ฟังก์ชัน (evt) { var feature = map.forEachFeatureAtPixel (evt.pixel, function (feature, layer) { return feature; }); if (feature) { popup.setPosition (evt.coordinate) ; $(element).popover({ 'ตำแหน่ง': 'top', 'html': จริง, 'เนื้อหา': 'เลขพัสดุ: 
'+ feature.get('พัสดุ')+'
'+ 'เจ้าของ:
'+ feature.get('primowner') }); $(องค์ประกอบ).popover('แสดง'); } อื่น ๆ { $(element).popover('destroy'); } });

ทำลายมันก่อน แล้วแสดง:

if (คุณสมบัติ) { $(element).popover('destroy'); popup.setPosition(พิกัด); // คีย์ถูกยกมาเพื่อป้องกันการเปลี่ยนชื่อในโหมดขั้นสูง $(element).popover({ 'ตำแหน่ง': 'top', 'animation': false, 'html': true, 'content': feature.get('txt') }); $(องค์ประกอบ).popover('แสดง'); } อื่น ๆ { $(element).popover('destroy'); popup.setPosition(ไม่ได้กำหนด); }

http://jsfiddle.net/jonataswalker/9qorz7kd/