Я успешно реализовал jQuery BBQ на странице HTML, которая позволяет мне вставлять HTML в div при нажатии на ссылки триггера с определенным классом.То, что я хотел бы сделать, это выполнить некоторый jquery, который включен во вставленную страницу, как будто document.ready был вызван инъекцией.
Я использую jQuery 1.4.4, поэтому предпочел бы избежать LiveQuery.
Вот моя попытка: -
// Global Join Functions
$(window).bind( 'hashchange', function() {
// ==================================================================
// Progressively enhance Radio Buttons and Checkboxes
// ==================================================================
$(".enhancedradiocheck").buttonset();
// ==================================================================
// Ajaxify links and load them in a div whilst hashing state
// ==================================================================
// Keep a mapping of url-to-container for caching purposes.
var cache = {
// If url is '' (no fragment), display this div's content.
'': $('.form-default')
};
// Bind an event to window.onhashchange that, when the history state changes,
// gets the url from the hash and displays either our cached content or fetches
// new content to be displayed.
$(window).bind('hashchange', function (e) {
// Get the hash (fragment) as a string, with any leading # removed. Note that
// in jQuery 1.4, you should use e.fragment instead of $.param.fragment().
var url = $.param.fragment();
// Remove .form-current class from any previously "current" link(s).
$('a.form-current').removeClass('form-current');
// Hide any visible ajax content.
$('.ajaxified').children(':visible').hide();
if (cache[url]) {
// Since the element is already in the cache, it doesn't need to be
// created, so instead of creating it again, let's just show it!
cache[url].show();
} else {
// Show "loading" content while AJAX content loads.
$('.form-loading').show();
// Create container for this url's content and store a reference to it in
// the cache.
cache[url] = $('<div class="form-item"/>')
// Append the content container to the parent container.
.appendTo('.ajaxified')
// Load external content via AJAX. Note that in order to keep this
// example streamlined, only the content in .infobox is shown. You'll
// want to change this based on your needs.
.load(url, function () {
// Content loaded, hide "loading" content.
$('.form-loading').hide();
});
}
})
// Since the event is only triggered when the hash changes, we need to trigger
// the event now, to handle the hash the page may have loaded with.
$(window).trigger('hashchange');
//Add the hash to any link with the class ajaxlink so it degrades gracefully
$("a.ajaxlink").each(function () {
el = $(this);
ajaxhref = "#" + el.attr("href");
el.attr("href", ajaxhref);
})
});