Reputation: 1184
Okay, I have a map of the country, the user clicks on their state, and a bunch of suppliers is loaded through jQuery via a page like this:
$('#sa').click(function () {
$('#mapimg').hide();
$('<div id="info"> </div>').load('dealers.php?state=sa', function () {
$(this).hide()
.appendTo('#dealers')
.slideDown(3000);
});
});
Then when it displays the deals, I want the user to be able to click the 'contact us' next to each dealer and have a modal jump up with a contact form in it. But it doesn't seem to be firing. on clicking just does nothing.
Here is the jQuery code to trigger the modal box:
$(document).ready(function () {
//select all the a tag with name equal to modal
$('a').click(function (e) { //I have tried everything here, div, a[name=something], li, etc
//Cancel the link behavior
e.preventDefault();
//Get the A tag
var id = $(this).attr('href');
//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();
//Set heigth and width to mask to fill up the whole screen
$('#mask').css({ 'width': maskWidth, 'height': maskHeight });
//transition effect
$('#mask').fadeIn(1000);
$('#mask').fadeTo("slow", 0.8);
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
//Set the popup window to center
$(id).css('top', winH / 2 - $(id).height() / 2);
$(id).css('left', winW / 2 - $(id).width() / 2);
//transition effect
$(id).fadeIn(2000);
});
//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();
$('#mask').hide();
$('.window').hide();
});
//if mask is clicked
$('#mask').click(function () {
$(this).hide();
$('.window').hide();
});
});
The following code works outside the loaded content, but not inside. Did anyone get any ideas?
<a href='#dialog2' class='openmodal'>Open Modal Box</a>
Upvotes: 1
Views: 452
Reputation: 40507
with the dynamically loaded content you just need to juse live bindings. Please use jQuery live events. Suppose contact link has class "clsContact" then you can put dialog opening login in function "OpenModal" and bind links like this:
$("a.clsContact").live('click', OpenModal);
Upvotes: 2