我有一个 li
,还有一些其他元素,例如 divs
、inputs
,以及这个 li
中的所有内容 GridView 。
我在 li
上有一个 onmouseover="calcRoute();"
。
问题
:我注意到,将鼠标悬停在元素 div
内部并从元素 div 移至父 div
导致calcRoute();
再次执行,即再次绑定(bind)google map ,导致 map 重新绑定(bind)导致闪烁。
尝试过
:onmouseenter
和onmouseleave
,但并非所有浏览器都支持
<li onmouseover="calcRoute(8.4572136,76.94017529999996);return false; ">
<div class="li-inner">
<input type="image" name="ctl00$ContentPlaceHolder1$FESearchListingControl1$dlPhotoView$ctl01$imgPhotoView" id="ctl00_ContentPlaceHolder1_FESearchListingControl1_dlPhotoView_ctl01_imgPhotoView" src="../UploadedImages/House2469-22-8-2012.jpg" style="height:142px;width:219px;border-width:0px;">
<div class="title">
<a id="ctl00_ContentPlaceHolder1_FESearchListingControl1_dlPhotoView_ctl01_lblPropName" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$FESearchListingControl1$dlPhotoView$ctl01$lblPropName','')">Halloween</a>
<div class="star"></div>
</div>
<div class="address">
<div class="left-location">
<span id="ctl00_ContentPlaceHolder1_FESearchListingControl1_dlPhotoView_ctl01_lblDistrict">Trivandrum</span>
</div>
<div class="right-price"><span class="WebRupee">Rs</span>
<span id="ctl00_ContentPlaceHolder1_FESearchListingControl1_dlPhotoView_ctl01_lblPrice">500.00</span>
</div>
</div>
</div>
</li>
最佳答案
您可以将 id 附加到 li 元素,并将该 id 传递给 calcRoute 函数。
onmouseover="calcRoute(8.4572136,76.94017529999996, this.id);
然后,在这个函数中,您可以为这个 li 元素设置一个标志,表明它之前已经悬停过。
var hoveredItems = {}; // this is a global object
function calcRoute(x,y,id) {
// put this control on top so that recurring operations will be prevented from being run.
if(hoveredItems[id]) return;
else hoveredItems[id] = true;
..
}
也许这有帮助......
关于javascript - div onmouseover 在主 div 内的其他 div 上移动时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777451/