jQuery加载数据不像它应该发射模态

时间:2009-08-06 08:21:57

标签: jquery modal-dialog

好的,我有一张国家地图,用户点击他们的状态,并通过这样的页面通过jQuery加载了一堆供应商:

   $('#sa').click(function () {
    $('#mapimg').hide();
    $('<div id="info">&nbsp;</div>').load('dealers.php?state=sa', function () {  
    $(this).hide()
        .appendTo('#dealers')
            .slideDown(3000);
        });

然后,当它显示交易时,我希望用户能够点击每个经销商旁边的“联系我们”并进行模式跳转,其中包含联系表格。但它似乎没有被解雇。点击只是什么也没做。

以下是触发模式框的jQuery代码:

$(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();
});

});

以下代码在加载的内容之外工作,但不在内部。有人有任何想法吗?

<a href='#dialog2' class='openmodal'>Open Modal Box</a>

提前谢谢!

1 个答案:

答案 0 :(得分:2)

使用动态加载的内容,您只需要实时绑定。请使用jQuery live events。假设联系链接具有类“clsContact”,那么您可以在“OpenModal”函数中打开对话框打开登录并绑定如下链接:

$("a.clsContact").live('click', OpenModal);