-2
$("#mainMenu").children('li').eq(0).children('a').bind({
    click : function() {

在这里,我正在清除块和部分。并通过附加动态创建它们worksParser();

        $('aside > *').remove();
        $('section > *').remove();
        worksParser();

在这里我想从 AsideToSection 调用函数。并将刚刚附加的 dom 元素发送$('aside').children('.workExample')到一边。

        var x = $('aside').children('.workExample');
        alert(x);
        fromAsideToSection.call(x);

但是 x 返回(object object),而不是(object HtmlDivElement)。我如何发送(object HtmlDivElement) 来发挥作用?

    }
});

function worksParser() {
    $.ajax({
        type : "GET",
        url : "base.xml",
        dataType : "xml",
        success : function(xml) {
            $(xml).find('siteExample').each(function() {
                var name_dump = $(this).attr('name');
                var mediaType_dump = $(this).attr('mediaType');
                var media_dump = $(this).attr('media');
                var video_dump = $(this).text();
                var description_dump = $(this).attr('description');
                var url_dump = $(this).attr('url');

                if (mediaType_dump != 'video') {
                    $('aside').append('<div class="workExample"><div class="mediaName">' + name_dump + '</div><div class="exampleMedia"><img src="' + media_dump + '" alt="" /></div><div class="descrExample" style="display: none">' + description_dump + '</div><div class="urlExample" style="display: none">' + url_dump + '</div></div><div class="separator"></div>');
                } else {
                    $('aside').append('<div class="workExample"><div class="mediaName">' + name_dump + '</div><div class="exampleMedia"><img src="' + media_dump + '" alt="" /></div><div class="descrExample" style="display: none">' + description_dump + '</div><div class="videoExample" style="display: none">' + video_dump + '</div></div><div class="separator"></div>');
                }
            });
        }
    });
}


function fromAsideToSection() {
    alert(this);
    if ($(this).children('.videoExample').length > 0) {
        $('section > *').remove();
        $('section').append('<div id="mediaName" class="mediaName">' + $(this).children(".mediaName").text() + '</div><div id="mediaBlock"></div><div id="mediaMore">Описание</div><div id="mediaDescription">' + $(this).children('.descrExample').text() + '</div>');
        $('section').children('#mediaBlock').append($(this).children(".videoExample").children().clone("withDataAndEvents, deepWithDataAndEvents"));

    } else {
        $('section > *').remove();
        $('section').append('<div id="mediaName" class="mediaName">' + $(this).children(".mediaName").text() + '</div><div id="mediaBlock"><a target="_blank" style="" href="' + $(this).children('.exampleMedia').children('img').attr('src') + '"> <img src=' + $(this).children('.exampleMedia').children('img').attr('src') + ' alt="1.jpg"></a></div><div id="mediaMore">Описание</div><div id="mediaDescription">' + $(this).children('.descrExample').text() + '</div>');
    }
    sectHeight = null;
    oldHeight = null;
    sectHeight = $('section').height();
    $('aside').height(sectHeight);
}
4

1 回答 1

0

这听起来像是.get() *的工作

x.get();

根据您提交的简单小提琴

Buuut,你的函数fromAsideToSection(顺便说一句被截断了)正在使用$(this),所以如果这是一个元素或一个 jQuery 对象,那没关系 - jQuery 会识别它,并且无论是 jQuery ,$(this)最终都会本质上是一样的this对象或 DOM 元素。我在小提琴中强调了这一点。

*不要与 ajax 简写 jQuery.get() 混淆参考:api.jquery.com/jQuery.get/

于 2013-01-28T06:19:38.280 回答