如果找到元素,则返回jQuery回调

时间:2012-03-26 11:28:48

标签: 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;
                        });

这基本上意味着如果一个id与所点击链接上的data-id值匹配的div然后运行代码。但是find方法没有回调。我该怎么做?

由于

3 个答案:

答案 0 :(得分:1)

你不需要等待任何事情,对吗?所以只需使用if语句:

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

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

答案 1 :(得分:1)

你应该做

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

}

答案 2 :(得分:1)

您可以使用if语句 -

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