在调用插件时使用jQuery的live()函数?

时间:2010-06-28 09:12:55

标签: ajax jquery

所以我有一个插件 - jScrollPane - http://www.kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html - 这很棒,但是,我想把它应用到Ajax生成的div。

我如何将jScrollPane与jQuery的live()结合使用?有关live()的更多信息,请访问:http://api.jquery.com/live/

谢谢!

杰克

2 个答案:

答案 0 :(得分:5)

当你想要将一个元素绑定到一个事件时,live()方法很棒,但你会使用什么事件来保持插件的持久性?我不认为有一个......

你可以做的是将初始插件绑定到函数中,然后在你的ajax生成的div到位之后调用该函数,如下所示:

function setPlugins() {
    $('#abc').myPlugin();
}

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     setPlugins();
   }
 });

我不完全确定这是否是解决问题的最佳方法,但这就是我一直在做的事情。

答案 1 :(得分:1)

我认为这将是你需要的东西。

$(function()
{
    initialise_jScrollPane = function() {
        $("#jScrollPane").jScrollPane();
    }

  // Update contexts using live jquery ajax link
    $("a#ajax_load_link").live("click", function() {
        $("<div/>").attr({"id": "jScrollPane"}).appendTo("body").load("ajax_page.html", "", initialise_jScrollPane);
    });
});

这将创建一个id为“jScrollPane”的div元素,然后使用从jQuery请求返回的Ajax内容初始化jScrollPane。

马丁