2010-06-28 7 views
4

Итак, у меня есть плагин - jScrollPane - http://www.kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html - это потрясающе, но я хочу применить его к Ajax -генерированному div.Использование функции live() jQuery при вызове плагина?

Как использовать jScrollPane в сочетании с jQuery's live()? Дополнительную информацию о live() можно найти здесь: http://api.jquery.com/live/

Спасибо!

Джек

ответ

5

live() метод является большим, когда вы хотите связать элемент с событием, но какое событие вы бы использовать, чтобы сохранить плагин настойчивый? Я не думаю, что есть один ...

Что вы можете сделать вместо этого положить первоначальный плагин привязки в функции, а затем вызвать эту функцию после того, как ваш Аякса генерируется DIV находится в месте, как это:

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

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

Я не совсем уверен, что это лучший способ решить вашу проблему, но я так и делал это.

+0

Такая же проблема с JQuery-ще, таким же размером .. Если кто-то есть решение с живым я также интересом –

+1

Также обратите внимание, что .он() должна теперь использоваться вместо живых() – iamdash

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); 
    }); 
}); 

Это создаст Div элемент с идентификатором «JScrollPane», а затем инициализировать JScrollPane с содержанием Ajax вернулся из запроса JQuery.

Martin