2011-12-09 12 views
1

こんにちは私は、jqueryで作成しているツールヒントを持っています。これは、画像のalt値をjquery offset()によって配置されている浮動小数点divにロードします。私のコードはChrome/Safariで動作しますが、Firefoxでは動作しません。jqueryマウスのオフセット位置がFirefoxとChromeで異なる

Chromeでは、このアイテムのラベルの右にあるアイコンの上にツールチップが表示されます。 (これも多分、これは問題がある、モーダルボックスで行われている?

私はまだこれに幾分新しいですので、私のコードを言い訳してください。.live機能を使用して

$("img.more_info, div.option_item_wrap label").live('mouseover', function(e) { 
    optionIcon = $(this).closest('div').find('img.more_info'); 
    optionInfoContent = optionIcon.attr('alt'); 

    if(optionInfoContent != undefined) { 
     findImage = $(this).closest('div').find('span.option_item_image'); 
     $("body").append('<div id="option_info"><p>' + optionInfoContent + '</p><div id="option_info_tail"></div></div>'); 
     findImage.clone().prependTo('div#option_info p'); 
     toolTipHeight = $('div#option_info').height(); 
     findIconPost = optionIcon.offset(); 
     topPos = findIconPost.top - (toolTipHeight + 20); 
     leftPos = findIconPost.left - 80; 

     $('div#option_info').css('top', topPos).css('left', leftPos).fadeIn(); 
    }; 
}).live('mouseout', function() { 
    $('div#option_info').remove(); 
}); 
+0

FirefoxとChromeはオフセットから異なる結果を返しています...約15px、何らかのアイデアでオフですか? – West55

+0

'console.log(findIconPost)'は別の値も返しますか? – czarchaic

+0

はい返された値が異なる – West55

答えて

0
if($.browser.mozilla){ 
     topPos = findIconPost.top - (toolTipHeight + 90); 
    } 

これは私が思い付く唯一の解決策でした。私はfirefoxのオフセットを調整しました。

1

various reasonsのために推奨されていません。。

$(document).ready(function() { 
    $("img.more_info, div.option_item_wrap label").mouseover(function() { 
     // Your code 
    }); 
}); 

このよく、またはあなたの問題を解決しないかもしれないが、それがない場合、その後、あなたはthis questionと同じ問題を経験していた

:より多くの典型的なアプローチを使用してみてください
関連する問題