我有一个显示项目的网站,每页12个项目,我可以使用jquery在页面中进行分页。在同一页面上,我使用qTip实现了工具提示功能。

将鼠标悬停在项目上会显示一些信息。在我使用分页器转到下一页之前,该方法一直有效。

分页会重新加载内容。但是它具有与刷新页面时相同的结构。

这是我的代码:

$(document).ready(function() {
 $(".cornerize").corner("5px");
 $('a#verd').live('click', exSite);
 $("a.tp").live('click', thumpsUp);
 $("a#next").click(getProgramms);
 $("a#previous").click(getProgramms);
 $("a#page").each(function() {
  $(this).click(getProgramms);
 });

 $('a.ppname[rel]').each(function(){

    $(this).qtip( {
     content : {url :$(this).attr('rel')},
     position : {
      corner : {
       tooltip : 'leftBottom',
       target : 'rightBottom'
      }
     },
     style : {
      border : {
       width : 5,
       radius : 10
      },
      padding : 10,
      textAlign : 'center',
      tip : true,
      name : 'cream'
     }

    });
   });

 });


html / dom不变:

<a class="ppname" rel="link" href="#">...</a>


qTip从每个a.ppname中取rel值端加载内容。

最佳答案

发生这种情况是因为在页面加载后加载新元素时,它们不会自动“ qTiped”。对于常规事件,您必须使用.live()而不是.bind()

之前已经解决了(根据评论判断):Problem with qTip - Tips not showing because elements load after the script

正确的方法是(根据该答案):

$('a.ppname[rel]').live('mouseover', function() {
    var target = $(this);
    if (target.data('qtip')) { return false; }

    target.qtip({
        overwrite: false, // Make sure another tooltip can't overwrite this one without it being explicitly destroyed
        show: {
            ready: true // Needed to make it show on first mouseover event
        },
        content : {url :$(this).attr('rel')},
        position : {
            corner : {
                tooltip : 'leftBottom',
                target : 'rightBottom'
            }
        },
        style : {
            border : {
            width : 5,
            radius : 10
        },
        padding : 10,
        textAlign : 'center',
        tip : true,
        name : 'cream'
    });

    target.trigger('mouseover');
});

关于javascript - qTip工具提示未出现,jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4408415/

10-13 05:26