How do I simulate a hover with a touch in touch enabled browsers?

后端 未结 14 2066
旧巷少年郎
旧巷少年郎 2020-11-22 17:04

With some HTML like this:

Some Text

Then some CSS like this:

p {
  color:black;
}

p:hover {
  color:red         


        
14条回答
  •  悲&欢浪女
    2020-11-22 17:41

    A mix of native Javascript and jQuery:

    var gFireEvent = function (oElem,sEvent) 
    {
     try {
     if( typeof sEvent == 'string' && o.isDOM( oElem ))
     {
      var b = !!(document.createEvent),
         evt = b?document.createEvent("HTMLEvents"):document.createEventObject();
      if( b )    
      {  evt.initEvent(sEvent, true, true ); 
        return !oElem.dispatchEvent(evt);
      }
      return oElem.fireEvent('on'+sEvent,evt);
     }
     } catch(e) {}
     return false;
    };
    
    
    // Next you can do is (bIsMob etc you have to determine yourself):
    
       if( <<< bIsMob || bIsTab || bisTouch >>> )
       {
         $(document).on('mousedown', function(e)
         {
           gFireEvent(e.target,'mouseover' );
         }).on('mouseup', function(e)
         {
           gFireEvent(e.target,'mouseout' );
         });
       }
    

提交回复
热议问题