1

我刚刚学会了如何使用 jQuery 的getJSON方法和 PHP 文件在 MySQL 数据库上进行查询,然后通过 PHP 的json_encode.

<script>
$(document).ready(function() {
$(".click_me").click(function(){
$.getJSON("http://path/to/file.php",function(results){  
$("#container").html(results[0].key-name);
});
});
});
</script>

该功能正在工作,除了返回的数据(html)包含围绕一些内容的类,这些内容应该在悬停和单击等时触发 jQuery 操作。

但是,这些功能都不起作用,我想知道是否需要对内容进行某种“重新初始化”,因为它是由该getJSON方法“动态”生成的?

4

1 回答 1

1

您在加载时附加到页面的处理程序仅附加到调用期间存在的那些元素。因此,您需要 1. 通过调用函数再次附加它们 2. 使用$.on

  1. 假设您添加了处理程序$(".someClass").click(dosomething)。您可以再次调用此行,处理程序将重新附加到该类。在 ajax 调用之后执行此操作。

  2. 您可以使用$(".someClass").on("click",dosomething)添加事件处理程序。只需检查 on 的格式。我不完全确定语法

编辑:回应评论

function initTooltipster(){ //Move it to  a seperate function we can call
    $('.tooltip').tooltipster({
        functionBefore: function(origin, continueTooltip){
            origin.tooltipster('update', $(origin).text());
            continueTooltip();
        }
    });

}
$(document).ready(initTooltipster);

 $(document).ready(function () {
     $(".click_me").click(function () {
         $.getJSON("http://path/to/file.php", function (results) {
             $("#container").html(results[0].key - name);
             initTooltipster();//Init it here again
             //OR just call tooltipster inside the context of container                                    $('#container .tooltip').tooltipster({
        functionBefore: function(origin, continueTooltip){
            origin.tooltipster('update', $(origin).text());
            continueTooltip();
        }
    });


         });
     });
 });
于 2013-08-20T08:02:09.517 回答