2012-03-26 50 views
1

我曾嘗試下面的代碼:jQuery的回調元素中找到

$('a.buildMenu').click(function (event) { 

        // Prevent normal behaviour 
        event.preventDefault(); 

        // Stops it bubbling to the document 
        event.stopPropagation(); 

        var link = $(this); 

    $(document).find('div#' + $(link).data('id'), function() { 

          console.log($(link).data('id')); 
          $('.buildMenu').removeClass('selected'); 
          $('.menu').remove(); 
          return false; 
         }); 

這基本上意味着,如果與被點擊鏈接上的data-id值相匹配的ID的DIV然後運行該代碼。然而find方法沒有回調。我將如何做到這一點?

謝謝

回答

1

你不需要等待任何東西吧?因此,只要使用if語句:

var $elements = $('div#' + link.data('id')); 

if ($elements.length > 0) { 
    console.log(link.data('id')); 
    $('.buildMenu').removeClass('selected'); 
    $('.menu').remove(); 
} 
1

你應該做

if($(document).find('div#' + $(link).data('id')).length){ 
    $('.buildMenu').removeClass('selected'); 
    $('.menu').remove(); 

} 
1

你可以使用if語句 -

if ($(document).find('div#' + $(link).data('id')).length) { 
     console.log($(link).data('id')); 
     $('.buildMenu').removeClass('selected'); 
     $('.menu').remove(); 
    });