简体   繁体   中英

jQuery click/touch events won't fire in mobile (inline element)

I have a span element which when clicked/touched should trigger certain actions in jQuery.

在此处输入图片说明

HTML

<span id="" class="dwr_icon_location locationElementBtn"></span>

jQuery

$(document).ready(function(){
  // Location Button
  $(document).on("click touchstart",".locationElementBtn", function(){
      $(".locationBtn").toggleClass("active");

      // Displaying location window in the proper bar
      var locationBtn   = $(this).parent(".locationBtn");
      var locationStngs = $("#locationStngs");

      // if locationStngs doesn't exist in the current bar
      if(!locationBtn.children("#locationStngs").length){
        locationBtn.append(locationStngs);
      }
  });
});

The problem is that the event is never fired in mobile , despite other elements with jQuery listeners attached to them working just fine. No errors display on the console either. Everything seems to work in desktop, by the way.

I am aware this question has been asked repeatedly before, but in this instance I just don't seem to find a solution. Any insight into how to resolve this issue is appreciated.

I was able to resolve the issue by adding

display:inline-block

to .locationElementBtn . It seems that link hitspaces arent quite so visible for inline (span) elements on mobile, thus the jQuery events aren't fired. It probably has something to do with the element containing a font icon.

Thanks to t.niese for the hint!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM