jquery - 将插件/事件绑定到动态加载的元素

时间:2013-01-05 08:08:57

标签: jquery ajax events plugins bind

我使用jquerytools的工具提示插件(http://jquerytools.org/documentation/tooltip/index.html)。 我不明白如何将它绑定到动态加载的元素。

我使用它的'正常'方式是:

$(".myElementClass").tooltip({ 
  effect: 'slide',
  tip: '#myTipId',
  offset: [40, 0],
  relative: true,
  position: 'top center'
})

但是如果.myElementClass由ajax加载,这将无效。 在动态加载的元素中,我使用“on”sintax,如下所示:

$(document).on("hover", ".myElement",function(){
  ...do something ...     
})

我应该如何混合这两件事?

编辑特里斯坦正确答案后:

$(document).on("hover", ".myElementClass",function(){
    tooltip=$(this).tooltip({
            effect: 'slide',
            tip: '#myTipId',
            offset: [40, 0],
            relative: true,
            position: 'top center',
            api:true
        });
        tooltip.show();
    })

1 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
  $(function() {
     $("input[type=button]").click(function() {
        $(".output").append("<div class='added' style='background-color:red;'>Hover Me , You will get tooltip</div>");
     });
     var tooltip = null;
     $(".output").on("hover", ".added", function () {
        if (tooltip == null) {
           tooltip = $(this).tooltip({
              effect: "slide",
              tip: "#myTipId",
              offset: [40, 0],
              relative: true,
              position: "top center",
              api:true
           });
        }
        tooltip.show();
     });
  });

<body>
   <div id="myTipId" style="display:none;">I'm tooltip</div>
   <input type="button" value="Add new Item" />
   <div class="output" style="border:1px solid black;"></div>
</body>

说明:设置 config.api = true 。如果是这样,fn.tooltip(conf)将返回taketip对象而不是目标HTML元素本身。请参阅源代码https://github.com/jquerytools/jquerytools/blob/master/src/tooltip/tooltip.js#352