Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何根据弹出信息验证正在单击的传单标记是否为我想要的标记?_Jquery_Leaflet - Fatal编程技术网

Jquery 如何根据弹出信息验证正在单击的传单标记是否为我想要的标记?

Jquery 如何根据弹出信息验证正在单击的传单标记是否为我想要的标记?,jquery,leaflet,Jquery,Leaflet,在传单中,我的一些标记是这样建造的 $div1 = "<div class='xx'>OBJ: $objmrkr<br></div><div class='gg'>W3W: $w3w</div>"; //echo "$div1<br>"; $div2 = "<div class='cc'>Co

在传单中,我的一些标记是这样建造的

$div1 = "<div class='xx'>OBJ: $objmrkr<br></div><div class='gg'>W3W: $w3w</div>";                          //echo "$div1<br>";   
        $div2 = "<div class='cc'>Comment:<br>$comment</div>";               //echo "$div2<br>";
        $div3 = "<div class='bb'><br>Cross Roads:<br>$cr</div><br><div class='gg'>$row[lat],$row[lng]<br>Grid: $gs<br><br>Captured:<br>$row[timestamp]</div>";  //echo "$div3<br>";
        
        
        $objMarkers .= " var $objmrkr = new L.marker(new L.LatLng($row[lat],$row[lng]),{
                            rotationAngle: $dup, 
                            rotationOrigin: 'bottom', 
                            opacity: 0.75,
                            contextmenu: true, 
                            contextmenuWidth: 140,
                            contextmenuItems: [{ text: 'Click here to add mileage circles',callback: circleKoords}],
                            
                            icon: L.icon({iconUrl: '$markername', iconSize: [32, 34]}),
                            title:`marker_$markNO`}).addTo(fg).bindPopup(`$div1<br>$div2<br>$div3`).openPopup();                    
                            
                            $('Objects'._icon).addClass('objmrkr'); 
                                       
                       ";
        }; 
$div1=“OBJ:$objmrkr
W3W:$W3W”//回显“$div1
”; $div2=“注释:
$Comment”//回显“$div2
”; $div3=“
十字路口:
$cr
$row[lat],$row[lng]
网格:$gs

捕获:
$row[timestamp]”//回显“$div3
”; $objMarkers.=“var$objmrkr=新的L.marker(新的L.LatLng($row[lat],$row[lng]){ 旋转角度:$dup, 旋转原点:“底部”, 不透明度:0.75, 上下文菜单:正确, 上下文宽度:140, contextmenuItems:[{文本:'单击此处添加里程圈',回调:circleKoords}], icon:L.icon({iconUrl:'$markername',iconSize:[32,34]}), 标题:`marker\$markNO`).addTo(fg).bindpoppup(`$div1
$div2
$div3`).openPopup(); $('Objects.\u icon).addClass('objmrkr'); "; };
当右键单击circleKoords函数时,调用该函数,但在运行其代码之前,我需要知道是否有正确的标记。正确的标记在标题中有一个“OBJ:”,如示例所示。这似乎是一个笨拙的方法,但我不知道另一个。我的问题是如何验证“OBJ:”是否在该标记的弹出窗口中? 有很多类似的问题,但似乎都不起作用,我不确定这是因为我使用的是contextmenu还是其他什么。 我试过了; var imanobj=e.xx之类的东西,但似乎什么都得不到我需要的?
想法?

您需要获取(标记的)弹出窗口的内容
marker.getPopup().getContent()
,然后您可以使用
content.indexOf(“OBJ”)>-1检查它是否包含字符串

marker.on('contextmenu',(e)=>{
  var marker = e.target;
  if(marker.getPopup()){
    var popup = marker.getPopup();
    if(popup.getContent().indexOf("OBJ") > -1){
        alert('Clicked Marker has OBJ')
    }
  }
})

设置
OBJ
标志的其他方法: 如果想知道标记是否为
OBJ标记
,只需添加一个属性标志即可<代码>$objmrkr.objFlag=true

$objMarkers .= " var $objmrkr = new L.marker(new L.LatLng($row[lat],$row[lng]),{
                            rotationAngle: $dup, 
                            rotationOrigin: 'bottom', 
                            opacity: 0.75,
                            contextmenu: true, 
                            contextmenuWidth: 140,
                            contextmenuItems: [{ text: 'Click here to add mileage circles',callback: circleKoords}],
                            
                            icon: L.icon({iconUrl: '$markername', iconSize: [32, 34]}),
                            title:`marker_$markNO`}).addTo(fg).bindPopup(`$div1<br>$div2<br>$div3`).openPopup();                    
                            
                            $('Objects'._icon).addClass('objmrkr'); 
                   $objmrkr.objFlag = true;
                       ";
在php字符串中实现侦听器: (我没有检查是否存在任何php错误)


$objMarkers.=“var$objmrkr=新的L.marker(新的L.LatLng($row[lat],$row[lng]){
旋转角度:$dup,
旋转原点:“底部”,
不透明度:0.75,
上下文菜单:正确,
上下文宽度:140,
contextmenuItems:[{文本:'单击此处添加里程圈',回调:circleKoords}],
icon:L.icon({iconUrl:'$markername',iconSize:[32,34]}),
标题:`marker\$markNO`).addTo(fg).bindpoppup(`$div1
$div2
$div3`).openPopup(); $('Objects.\u icon).addClass('objmrkr'); $objmrkr.on('contextmenu',函数(e){ var标记=e.target; if(marker.getPopup()){ var popup=marker.getPopup(); if(popup.getContent().indexOf('OBJ')>-1){ 警报('单击的标记有对象') } } })";
您需要获取(标记的)弹出窗口的内容
marker.getPopup().getContent()
,然后您可以使用
content.indexOf(“OBJ”)>-1检查是否包含字符串

marker.on('contextmenu',(e)=>{
  var marker = e.target;
  if(marker.getPopup()){
    var popup = marker.getPopup();
    if(popup.getContent().indexOf("OBJ") > -1){
        alert('Clicked Marker has OBJ')
    }
  }
})

设置
OBJ
标志的其他方法: 如果想知道标记是否为
OBJ标记
,只需添加一个属性标志即可<代码>$objmrkr.objFlag=true

$objMarkers .= " var $objmrkr = new L.marker(new L.LatLng($row[lat],$row[lng]),{
                            rotationAngle: $dup, 
                            rotationOrigin: 'bottom', 
                            opacity: 0.75,
                            contextmenu: true, 
                            contextmenuWidth: 140,
                            contextmenuItems: [{ text: 'Click here to add mileage circles',callback: circleKoords}],
                            
                            icon: L.icon({iconUrl: '$markername', iconSize: [32, 34]}),
                            title:`marker_$markNO`}).addTo(fg).bindPopup(`$div1<br>$div2<br>$div3`).openPopup();                    
                            
                            $('Objects'._icon).addClass('objmrkr'); 
                   $objmrkr.objFlag = true;
                       ";
在php字符串中实现侦听器: (我没有检查是否存在任何php错误)


$objMarkers.=“var$objmrkr=新的L.marker(新的L.LatLng($row[lat],$row[lng]){
旋转角度:$dup,
旋转原点:“底部”,
不透明度:0.75,
上下文菜单:正确,
上下文宽度:140,
contextmenuItems:[{文本:'单击此处添加里程圈',回调:circleKoords}],
icon:L.icon({iconUrl:'$markername',iconSize:[32,34]}),
标题:`marker\$markNO`).addTo(fg).bindpoppup(`$div1
$div2
$div3`).openPopup(); $('Objects.\u icon).addClass('objmrkr'); $objmrkr.on('contextmenu',函数(e){ var标记=e.target; if(marker.getPopup()){ var popup=marker.getPopup(); if(popup.getContent().indexOf('OBJ')>-1){ 警报('单击的标记有对象') } } })";
我喜欢这个答案的简单。我只需要弄清楚如何使用您提供的marker.on。您只需要在php字符串中添加
marker.on
代码。您需要使用
$objmrkr
更改变量名
标记
。我更新了答案,向您显示我用您的代码替换了我的代码,但不幸的是,我得到了一个“文件结束错误”。对我来说,这通常意味着我丢失了一个勾号、逗号或括号等。所以我搜索了一下,但什么也没找到。所以我读了又读了你关于将变量标记更改为$objmrkr的评论,并将结尾改为:;“$objmarker.on('context menu',(e)=>{..”但结尾是;解析错误:语法错误,在/var/www/html/objMarkers.php的第106行出现意外的“=>”(T_双_箭头)。您可以看到我正在努力解决语法问题。我不确定最后一部分是否在“}”之后'或在两人给出相同结果之前我更新了我的答案,请再试一次!我知道了!!!它正在工作。这是有史以来最好的答案。我喜欢这个答案的简单性。我只需要知道如何使用你提供的标记。你只需要在php字符串中添加
标记。on
代码。你需要更改变量名
标记
使用
$objmrkr
。我更新了答案,向您显示我用您替换了我的代码