2010-04-13 4 views
3

Я хочу написать draggable() и resizable() код таким образом, чтобы все будущие элементы с определенным классом наследовали эти плагины, не вызывая их снова.jQuery UI draggable() и resizable()

$('div.resizeMe').resizable({
containment: 'parent',
minWidth: 400,
minHeight: 200
})

Если приведенный выше код выполняется, все дивы с классом ResizeMe наследует функцию изменяемого(). Но если я добавил BODY с новым div с тем же классом, мне нужно было снова выполнить этот код. Поэтому моя цель - переписать этот код таким образом, чтобы он работал для всех и включая будущие элементы.

ответ

4

Вы можете использовать .livequery() plugin здесь, он будет выполнять на текущих матчей и выполнять на новых элементах, как они появляются, как это:

$('div.resizeMe').livequery(function() { 
    $(this).resizable({ 
    containment: 'parent', 
    minWidth: 400, 
    minHeight: 200 
    }); 
}); 

Это будет работать на текущих и будущихdiv.resizeMe элементов.

Если вы используете $.ajax() для загрузки контента, альтернатива для запуска кода в Ajax success или complete обратного вызова, например:

$.ajax({ 
    //options... 
    success: function(data) { 
    $('div.resizeMe', data).resizable({...options...}); 
    } 
}); 

Это будет работать на div.resizeMe элементов только в ответ и а не на элементы, которые вы уже сделали resizable.

+1

спасибо мужчина! это просто ответ, который я искал! – foxlance

+0

@fox - Добро пожаловать :) –

Смежные вопросы