подсказка qtip2 — отслеживание мыши — как найти содержимое многих элементов управления с одинаковым классом?

#jquery #asp.net #tooltip #qtip #qtip2

#jquery #asp.net #всплывающая подсказка #qtip #qtip2

Вопрос:

у меня есть много элементов управления, подобных приведенным ниже :

                 <div style="display: inline;">
                    <span id="cvCaptcha-Target" class="ttTarget">
                        <asp:CustomValidator ID="cvCaptcha" runat="server" Display="Dynamic" OnServerValidate="cvCaptcha_ServerValidate">
                            <asp:Image ID="img4cvCaptcha" CssClass="imgValidate" runat="server" AlternateText="attention"
                                ImageUrl="~/Images/Login/Exclamation.png" />
                        </asp:CustomValidator>
                    </span>
                    <div id="cvCaptcha-Content" class="ttContent">
                       captcha is incorrect!!!
                    </div>
                </div>
  

как вы видите, я поместил ttContent каждого элемента управления ниже него (внутри div), и у меня есть много элементов управления с классом ttTarget…

коды qtip2 для всплывающих подсказок отслеживания мыши, как показано ниже :

         $('#target').qtip({
            content: 'i am tool tip',
            position: {
                my: 'top left',
                target: 'mouse',
                viewport: $(window), // Keep it on-screen at all times if possible
                adjust: {
                    x: 10, y: 10
                }
            },
            hide: {
                fixed: true // Helps to prevent the tooltip from hiding ocassionally when tracking!
            },
            style: 'ui-tooltip-shadow'
        });
  

когда мы используем идентификаторы для qtip, все становится таким простым, и мы можем легко найти содержимое цели!
но в моем сценарии у меня много идентификаторов, которые я не знаю, как я могу распознать их содержимое по верхнему коду!

я имею в виду :

         $('.ttTarget').qtip({
            content: '______________' -> here is my problem (how can i find ttContents),
            position: {
                my: 'top left',
                target: 'mouse',
                viewport: $(window), // Keep it on-screen at all times if possible
                adjust: {
                    x: 10, y: 10
                }
            },
            hide: {
                fixed: true // Helps to prevent the tooltip from hiding ocassionally when tracking!
            },
            style: 'ui-tooltip-shadow'
        });
  

заранее спасибо

Ответ №1:

Способ 1 :

 $(function () {
            $('.ttTarget').qtip({
                overwrite: false,
                content: {
                    text: function (api) {
                        return $(this).parent('div').find('div.ttContent').html();
                    }
                },
                position: {
                    my: 'top left',
                    target: 'mouse',
                    viewport: $(window),
                    adjust: {
                        x: 10, y: 10
                    }
                },
                hide: {
                    fixed: true
                },
                style: 'ui-tooltip-shadow'
            });
  

способ 2 :

     $('.ttTarget').live('mouseover', function (event) {
        //alert($(this).next('div.ttContent').text());
        //alert($(this).parent('div').find('div.ttContent').html());
        $(this).qtip({
            overwrite: false,
            content: $(this).parent('div').find('div.ttContent').html(),
            position: {
                my: 'top left',
                target: 'mouse',
                viewport: $(window),
                adjust: {
                    x: 10, y: 10
                }
            },
            hide: {
                fixed: true
            },
            show: {
                event: event.type,
                ready: true
            },
            style: 'ui-tooltip-shadow'
        }, event);
    });