0

在我下面的代码中,单击链接时它不会在 AJAX 响应之后加载花哨的框。

<a>标签的id是动态生成的。

但是,当我第二次单击相同的链接时,它会加载,但 AJAX 功能也会被调用。

$(document).ready(function()
{

   $(".cont").live('click',function(e)
    {
        //Cancel the default action (navigation) of the click.
        e.preventDefault();

        var contentId = $(this).attr('id');


        $('#apps').load('/app/get-app-details', function(){
            $("#"+contentId).fancybox();
        });

    });


  });

<a class="cont" href="#device_detection" id="apps_<?= $regUsers->id; ?>"> Click to view apps</a>

请给我一个解决方案。

4

1 回答 1

0

这是有效的。可能其他人有用

  $(".cont").live("click",function() {

      link=($(this).attr('href'));



            $.fancybox({
            'width'                : '1000',
            'href'                 : link,
            'height'            : '750',
            'autoScale'         : false,
            'transitionIn'        : 'none',
            'transitionOut'        : 'none',
            'type'                : 'iframe'
            }); 





      return false; // don't follow the link!
           });

Live 已被最新的 jquery 弃用。因此您可以使用

$("body").on("click",".cont",function() {

      link=($(this).attr('href'));



            $.fancybox({
            'width'                : '1000',
            'href'                 : link,
            'height'            : '750',
            'autoScale'         : false,
            'transitionIn'        : 'none',
            'transitionOut'        : 'none',
            'type'                : 'iframe'
            }); 





      event.preventDefault(); // don't follow the link!
           });
于 2014-04-21T10:19:57.250 回答