2010-04-13 81 views
3

我想以這樣一種方式編寫draggable()和resizable()代碼,以便將來所有具有特定類的元素都將繼承這些插件而不會再次調用它們。jQuery UI draggable()和resizable()

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

當執行上面的代碼,與resizeMe類的所有div繼承的可調整大小()函數。但是,如果我將BODY添加到同一個類的新分區,我需要再次執行該代碼。因此,我的目標是如何重寫該代碼,使其能夠適用於所有人,包括未來的元素。

回答

4

你可以在這裏使用.livequery() plugin,將執行目前的比賽和執行新的元素出現,比如:

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

這將在當前和未來div.resizeMe元素運行。

如果您使用$.ajax()加載內容;另一種方法是在你的Ajax successcomplete回調運行的代碼,如:

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

這將在div.resizeMe元素只在響應和運行不是上的元素已經可以調整大小。

+1

謝謝你!這只是我正在尋找的答案! – foxlance 2010-05-21 10:08:04

+0

@fox - 歡迎:) – 2010-05-21 10:14:22