0

Googleマップ内にjQueryアコーディオンを表示しようとしていますが、機能していますが、アコーディオンメニューから離れてクリックすると、再度開いたときにアコーディオンとして機能しません。自作のアコーディオンを一から作らずに直す方法に困っています。それを適切に機能させる方法について何か助けはありますか?

http://mulibraries.missouri.edu/Reference/virtour/demo_fs_mobile.php

4

1 に答える 1

1

これらの要素もイベントで再度作成する必要があります。

を使用してコードを改善しました。jQueryこれを試してください:

function HomeControl(controlDiv, map) {
    var menu_btn = $("<div>");
    menu_btn.attr('id', 'menu_btn');
    menu_btn.attr('title', 'Click to show the Map Navigation');
    menu_btn.html('<b>Menu</b>');
    menu_btn.css({
        backgroundColor: 'white',
        cursor: 'pointer',
        textAlign: 'center',
    });

    $(menu_btn).click(function() {
        $(controlDiv).empty();

        menu_state = 1;

        var menu_nav = $("<div>");
        menu_nav.attr('id', 'menu_nav');
        menu_nav.attr('title', 'Click Map to close Menu');
        menu_nav.css({
            backgroundColor: 'white',
            cursor: 'pointer',
            textAlign: 'center',
        });

        var accordion = $('<div id="accordion"><h3><a href="#">Change Library</a></h3> <div>Ellis<br>Engineering<br>Journalism</div><h3><a href="#">Change Floor</a></h3> <div>Ground Floor<br>First Floor<br>Second Floor<br>Third Floor<br>Fourth Floor<br></div> <h3><a href="#">Change Map</a></h3> <div>Virtual Tour<br>Video Tour<br>Study Rooms<br>Computers</div></div>');

        $(menu_nav).append(accordion);
        $(controlDiv).append(menu_nav);

        $(accordion).accordion({active: 1, autoHeight: false});
    });

    $(controlDiv).empty();
    $(controlDiv).append($(menu_btn).clone(true));

    google.maps.event.addDomListener(map, 'click', function() {
        menu_state = 0;

        $(controlDiv).empty();
        $(controlDiv).append($(menu_btn).clone(true));
    });
}

お役に立てれば。

于 2012-10-04T15:25:19.870 に答える