次のコードを使用して、2つのunderscore.jsテンプレートをロードしています。最初のリンクをクリックすると、スケルトンテンプレートが読み込まれます。最初のトリガーはfindbindを実行し、loadBookmarks関数を正しく実行しますが、「loaded」トリガーは起動せず、loadFriendBookmarksは実行されません。どうしてこれなの?これを実現する別の方法はありますか?
$('#bookmarks-link').click(function() {
$('#bookmarks-count').text("0");
var skeleton = modalTemplate();
$('#bookmarks').append(skeleton);
$('#bookmarks').trigger('skeleton');
});
$('#bookmarks').bind('skeleton', function() {
$('#bookmarks .thumbnails').loadBookmarks( getBookmarksUrl(1) );
// If I add an alert('hi') here, it works perfectly.
$('#bookmarks').trigger('loaded');
});
$('#bookmarks').bind('loaded', function() {
$('#bookmarks .thumbnails a').each(function() {
$(this).bind('click', function() {
$('#bookmarks .bookmarks-table tbody').empty();
$('#bookmarks .bookmarks-table tbody').loadFriendBookmarks(
getFriendBookmarksUrl($(this).attr('data-item'))
);
});
});
});
非常に興味深いことに、トリガーは正しく機能します。loadBookmarksとトリガーの間にアラートを挿入すると、すべてが正常に機能します。私がそれを取り出すならば、それはしません。なぜですか?