问题QTIp通过iFrame - 使用JQUERY LIVE

时间:2010-04-15 21:56:40

标签: jquery iframe jquery-plugins live qtip

我想在我的网页上找到一个在iFrame中使用Qtip的fay。我找到了一种在iframe上使用QTIP的方法,但没有使用JQUERY LIVE ....

通过iFrame:http://craigsworks.com/projects/forums/thread-question-qtip-through-iframe

关于如何将JQUERY Live应用于此的任何想法?

我目前的代码:

$('iframe').load(function(){
  $(this).qtip(
  {
    content: 'My first Qtip! Look mom!',
    show: {
      when : {
         target: $(this).contents().find('.tipoff') // Element within the iframe
      }
    },
    hide: {
      when : {
         target: $(this).contents().find('.tipoff') // Element within the iframe
      }
    }
  });
});

由于

1 个答案:

答案 0 :(得分:1)

我知道这已经快一年了,但我只是想做类似的事情,并认为我会发布我的发现。我不完全确定你所追求的是什么,它可能与我所拥有的不同,但我假设你想像我一样在动态加载的<iframe>中对某些元素应用qTip

它没有解决live()问题,即使根据Adding a row to a table in an iFrame with jQuery (live?)它应该有效,但这是我最终的结果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
        iframe {
            border:1px dashed red;
        }
    </style>
    <link rel="stylesheet" type="text/css" href="jquery.qtip.min.css"/>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script src="jquery.qtip.min.js"></script>
    <script type="text/javascript">

        $(function() {
            $('p a.tip').qtip({
                content: 'foo'
            });

            $('iframe').load(function() {
                var position = $(this).position();
                var top = position.top;
                var left = position.left;
                $(this.contentDocument).find('p a.tip').qtip({
                    content: 'bar',
                    position: { adjust: { x:left, y:top } }
                });
            });

            $('#click').click(function(){
                $('iframe').attr('src', 'test.html');
                return false;
            });
        });

    </script>
</head>
<body>
    <p><a class="tip" href="#">Lorem ipsum dolor</a> sit amet, consectetur adipiscing elit.</a></p>
    <iframe></iframe>
    <p><a href="#" id="click">Load iFrame</a></p>
</body>
</html>

其中test.html包含:

<p><a class="tip" href="#">Duis massa metus</a>, convallis vitae, mollis vel, feugiat vitae, nunc.</p>

您可以从qTip2获取jquery.qtip.min.cssjquery.qtip.min.js

编辑:确保从Web服务器(不仅仅是作为本地文件加载)在浏览器中加载页面以避免Same origin policy

希望这对某人有用! : - )