2016-12-21 2 views
0

私はカレンダーアプリケーションを作成していますが、マウスを動かすたびにバーがマウスと共に移動して教えてくれます。バーが表す時間ただし、動的に作成されるdivであるカレンダーのイベントにマウスを合わせると、マウスがそのカレンダーイベントの子divに入ったときのどの位置にあってもバーが詰まるようになります。マウスが子を越えたときにJavaScriptがmousemoveのフォーカスを維持する

私は別のdivsとして、週7日を持っており、このjQueryの機能のためにそれらのすべてを呼び出すことができるようにクラスcalendar-partを使用します。

   $(".calendar-part").mousemove(function(e){ 
        var y = e.clientY; 
        var x = e.clientX; 
        //positioning and formatting, unimportant 
        var timeVal = (y-262)/500; 
        timeVal *= 900; 
        timeVal += 280; 
        var hour = Math.floor(timeVal/60); 
        var min = Math.round(timeVal%60,2); 
        var timeEnd = "AM"; 
        if(hour>=12) 
         timeEnd = "PM"; 
        if(hour>12) 
         hour-=12; 
        if(min<10) 
         min = "0"+min; 
        var timeCalc = hour+":"+min+" "+timeEnd; 
        document.getElementById("cbar").innerHTML = timeCalc; 
        document.getElementById("cbar").style.top = y - 262; 
        document.getElementById("cbar").style.textIndent = x - 950; 
      }); 

任意の提案は歓迎されている、またはjQueryのなし。

答えて

0

不要なdivをマウスに対して透明にするには、css pointer-events: noneを試すことができます。これはおそらく、divとのマウスのやりとりを必要としないと思われるなら、最も簡単で効率的な方法です。

子要素とマウスのやりとりをする予定がある場合は、明らかにその要素は機能しません。 clientXclientYを使用する代わりに、.calendar-partのオフセットを基準にしてpageXpageYshown in this exampleと試してください。

0

私は、このjQuery関数のセレクタを追加して、の代わりに$(".calendar-part, .event")にするだけでした。完璧に動作します。私のようにこのことについて考えるのを忘れた人は、うまくいけば、これが助けになる!

関連する問題