0

我正在使用 jQuery UI 工具提示小部件,它似乎在 Internet Explorer 中的选择标签上中断。所以我从初始化中排除了选择标签。但是,这似乎不起作用,因为 Internet Explorer 现在缺少所有增强的工具提示。

这是我之前没有使用 IE 选择标签的内容:

<script>j(document).tooltip();</script>

现在我正在切换到这段代码。j(document).not("select")防止显示增强的工具提示。如何使此代码工作?

<!--[if IE]>
    <script>j(document).not("select").tooltip();</script>  <-- Doesn't Work
<![endif]-->
<!--[if !IE]>
    <script>j(document).tooltip();</script>
<![endif]-->

我也从这个线程尝试了这段代码,但它仍然没有用。任何浏览器中都没有显示任何 jQuery UI 工具提示。

<!--[if IE]>
    <script>j('*').tooltip(); j('select').tooltip('disable');</script>
<![endif]-->
<!--[if !IE]>
    <script>j(document).tooltip();</script>
<![endif]-->


更新:

我试过了,又回到了我开始的地方:

<script>j('*').tooltip();</script>
<!--[if IE]>
<script>j('select').tooltip('disable');</script>
<![endif]-->
4

3 回答 3

0

它非常难看,但是您可以在所有浏览器中设置选择器字符串,在 IE 中覆盖,然后实际调用它。

<script>
    var tooltipSelector = "*";
</script>
<!--[if IE]>
<script> tooltipSelector = ":not(select)"</script>
<![endif]-->
<script>
    $(tooltipSelector).tooltip();
</script>

旁注:$(document).not("select").tooltip()选择文档,然后从集合中删除所有不是元素的select元素(这是所有元素,因为它只是一个文档),然后尝试在您的(现在为空的)集合上创建工具提示。这是一个昂贵的无操作。

于 2013-06-21T20:26:30.310 回答
0

在 javascript 解决方案中尝试条件标签:

var ie = (function(){

    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');

    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );

    return v > 4 ? v : undef;

}());

j(function(){

    if(!ie){

        //ie will be undefined if a different browser than IE is used
        //otherwise it will return the IE version
        //handle IE here

    }
    else {

        //handle the rest of the browsers here
    }

});
于 2013-06-21T20:27:18.400 回答
0
$(function(){
    $("*").each(function(i, el){
        $(el).attr("mytitle", $(el).attr("title")).removeAttr("title");
    });

    $("*").tooltip({
        items: "[mytitle]:not([disabled])",
        content: function() {
            return $(this).attr("mytitle");
        }
    });
});
于 2014-07-01T09:36:27.893 回答