Вопрос Qtip через iFrame - с JQUERY LIVE - PullRequest
3 голосов
/ 16 апреля 2010

Я хотел бы найти фей для использования Qtip в iFrame на моей странице. Я нашел способ использовать QTIP в iframe, но не с JQUERY LIVE ....

qСовет через 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 Ответ

1 голос
/ 12 апреля 2011

Я знаю, что это почти год, но я просто искал что-то подобное и думал, что опубликую свои выводы. Я не совсем уверен, что вы после, и это может отличаться от того, что у меня есть, но я предполагаю, что вы хотели применить qTip к некоторым элементам в динамически загруженном <iframe>, как я сделал.

Это не решает проблему live(), хотя согласно Добавление строки в таблицу в iFrame с помощью 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>

и вы можете получить jquery.qtip.min.css и jquery.qtip.min.js из qTip2 .

Редактировать: убедитесь, что страница загружена в ваш браузер с веб-сервера (а не загружен как локальный файл), чтобы избежать политики Same origin .

Надеюсь, это кому-нибудь пригодится! : -)

...