jquery - 单击交互式 map (SVG + jQuery)

标签 jquery html svg web-frontend

这是我的第一个问题,所以请温柔一点。我正在寻找创建一个交互式 SVG“ field 规划” map ,当单击该地 block 时,该 map 会在 map 旁边的一系列字段中填充有关每 block 土地的数据(地 block 编号、地 block 大小、地 block 价格等)。仅使用悬停状态,但我正在寻找一种更适合移动设备的替代方案,因此认为单击将是一个更好的选择,因此我涉足 jQuery。您可以看到the site map这里。我对 jQuery 很陌生,所以我早期的尝试很冗长,不可扩展,而且不起作用(下面的示例)。

SVG(内嵌在我的 html 文档中,仅使用 103 批中的前 2 批作为引用)

<g id="lotsPending">
  <rect x="234.2" y="21.6" class="yellowSold lot1" width="33.8" height="60"/>
  <rect x="201.6" y="21.6" class="yellowSold lot2" width="30.7" height="60"/>
</g>

...以及填充 map 旁边字段的数据:

    <div class="sitemap-specs">
      <h3>Lot No.</h3>
      <div class="lotspec revtype">
        <span class="lot1 spec m-hide">001</span>
        <span class="lot2 spec m-hide">002</span>
      </div>
      <h3>Status</h3>
      <div class="lotspec revtype">
        <span class="lot1 spec m-hide">PENDING</span>
        <span class="lot2 spec m-hide">PENDING</span>
      </div>
      <h3>Size</h3>
      <div class="lotspec revtype">
        <span class="lot1 spec m-hide">1.4ac</span>
        <span class="lot2 spec m-hide">1.6ac</span>
      </div>
      <h3>Price</h3>
      <div class="lotspec revtype">
        <span class="lot1 spec m-hide">$1,250,000</span>
        <span class="lot2 spec m-hide">$1,350,000</span>
      </div>
      <h3>Additional Info</h3>
      <div class="lotspec revtype">
        <span class="lot1 spec m-hide">Entry-way lot facing the north bound of the park.</span>
        <span class="lot2 spec m-hide">Row lot stationed near the north entrance of the park.</span>
      </div>
    </div>

jQuery

$('.lot1').click(function () {
  $('.spec').addClass("m-hide");
  setTimeout($('.lot1 spec').removeClass("m-hide"), 100);
});

我的期望是,单击带有 .lot1 类的批处理后,所有“.spec”对象都会隐藏(我的 CSS 中的 m-hide 类是显示:无),然后是带有“.lot1”的对象。 Lot1 Spec' 类已删除 m-hide 类,从而使它们可见。经过一些研究后,我似乎找不到以类似方式构建 map 的示例,这使我相信有一种我没有掌握的更好的方法。

最佳答案

可能只是一个拼写错误,但您的选择器缺少句点:

  setTimeout($('.lot1.spec').removeClass("m-hide"), 100);

将从具有“lot1”和“spec”类的元素中删除“m-hide”类,这就是您所拥有的,而

  setTimeout($('.lot1 spec').removeClass("m-hide"), 100);

将从<spec>中删除“m-hide”类属于“lot1”类元素的子元素。

&我的 2 美分,有这么多批处理,我会考虑在点击处理程序中使用 jquery 动态填充正确数据的字段。

关于jquery - 单击交互式 map (SVG + jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275246/

相关文章:

jQuery 动态选项卡颜色(除一个选项卡外的所有选项卡)

javascript - jQuery 在 Firefox 上运行不佳,在 Safari 中根本无法运行

javascript - 如何在字体大小更改时停止输入调整大小

javascript - 为什么 UpdatePanel 内的按钮在第一次后不执行 JQuery 事件

javascript - Jquery 工具提示定位功能在浏览器中的行为不同

jquery - 使用jquery调用AS3外部接口(interface)

javascript - 当用户将鼠标指针放在窗体按钮上时,窗体按钮必须改变颜色

ios - WKWebView 在设备上显示空白,在模拟器上工作

javascript - 如何获取 SVG 文件中多边形的 id?

html - SVG 背景图像不跨浏览器水平拉伸(stretch)