将qtip(jQuery插件)应用于页面上新加载的项目

将qtip(jQuery插件)应用于页面上新加载的项目,jquery,mysql,ajax,plugins,qtip,Jquery,Mysql,Ajax,Plugins,Qtip,首先,这是qtip,一个jQuery插件:基本上它提供了漂亮的工具提示 我在mysql数据库结果页面上使用qtip,当我第一次加载页面时,qtip工作得非常好。但是,我的页面上有一些排序链接,这些链接会导致div中的信息完全改变(使用AJAX通过创建一个新的mysql查询将新信息放入div中,该查询引用数据并将其放入表中以替换页面上的表)。当我点击我的排序按钮时,除了QTIP以外的所有东西都会消失。我使用图像标题(“标题”)上的QTIP,因此当我滚动排序表上的图像时,它会返回到正常的工具提示 我

首先,这是qtip,一个jQuery插件:基本上它提供了漂亮的工具提示

我在mysql数据库结果页面上使用qtip,当我第一次加载页面时,qtip工作得非常好。但是,我的页面上有一些排序链接,这些链接会导致div中的信息完全改变(使用AJAX通过创建一个新的mysql查询将新信息放入div中,该查询引用数据并将其放入表中以替换页面上的表)。当我点击我的排序按钮时,除了QTIP以外的所有东西都会消失。我使用图像标题(“标题”)上的QTIP,因此当我滚动排序表上的图像时,它会返回到正常的工具提示

我相信错误在于$(document).ready意味着qtip内容只会在第一页加载时加载,因此当我更改表时,所有qtip都会消失。我在qtip论坛上找到了一个似乎与我的问题()有关的主题,我尝试了该主题中的所有内容,我使用的是qtip的最新版本,因此我使用了on()而不是live(),因为live()已被弃用。它仍然没有修复它。代码如下:

<script type="text/javascript">
jQuery(document).ready(function() {
    $('img[title]').on('mouseover', function() { 
        if( typeof( $(this).data('qtip') ) == 'object' ){ return; }
        $(this).qtip({
            content: {
                text: false
            },
            style: 'cream',
            position: {
                viewport: $(window)
            }
        });
        $(this).qtip('show');
    });
});
</script>

jQuery(文档).ready(函数(){
$('img[title]')。在('mouseover',function(){
if(typeof($(this).data('qtip'))=='object'){return;}
$(此).qtip({
内容:{
文本:false
},
风格:“奶油”,
职位:{
视口:$(窗口)
}
});
$(this.qtip('show');
});
});

通过存储qTip设置,可以在加载新内容后轻松(重新)初始化具有相同设置的qTip

如果不完全了解您的javascript,我无法具体说明,但类似这样的内容应该可以做到:

jQuery(document).ready(function() {
    var qtipOptions = {
        content: { text: false },
        style: 'cream',
        position: { viewport: $(window) }
    };

    $('img[title]').qTip(qtipOptions);

    $("#myButton").on('click', function(){
        $.ajax({
            //...
            //...
            //...
            success(function(html){
                $("#mySelector").html(html);
                $('img[title]').qtip('destroy').qtip(qtipOptions);
            })
        });
    });
});

您正在进行回发以对sql结果进行排序吗?那么,准备好了吗?如果没有,你可能必须在排序后再次分配'this.qtip',我从来没有听说过回发,但我会研究一下。显示对结果进行排序的代码。我尝试在谷歌上搜索“mysql回发”,但没有得到任何结果。我猜mysql不存在,或者不太容易实现。这几乎就是我用来排序的代码:我不确定如何将我的代码放入你的代码中。我并没有在qtip中使用ajax,而是在使用它:因此,当我单击排序链接时,它会调用另一个页面来查询数据库,并创建一个表来替换页面上的表。我尝试放置var qtioptions={//options};$('img[title]').qtip('destroy').qtip(qtioptions);在被称为的页面的末尾,不起作用。但也许我没有正确地编写代码;我对jQuery有点陌生。w3schools参考资料向您展示了如何使用原始AJAX,但在页面上使用jQuery时,不使用其AJAX功能是愚蠢的。学习
jQuery.ajax()
(以及各种快捷方式)对于现在和将来的生产力都是一项巨大的投资。通读一遍,然后回到我建议的代码。您将看到,它不是“qtip内的ajax”,而是“ajax内的qtip”-更完整地说,ajax成功处理程序中会出现一条
.qtip(…)
语句。我阅读了该文档,并将代码转换为jQuery ajax,它最终起作用了!)谢谢你是对的,这在将来确实很有用。