0

私は地図(intanceOf Google Maps)を持っていて、動的にhtmlを追加しています。これはpim、より具体的にはrichMarkerです。すべてがうまくいき、マークがあります。

問題は、 richMarkerによってレンダリングされたこの html のタグにクラスを設定しようとしていて、ページでこのタグを JQuery セレクターでキャッチしようとしていて、もちろんそれを処理しようとしていることです。

いくつかのコード:

メインページにはこれがあります。

$.cometd.subscribe(channelCerca, function (comet) {

        if (comet.data.type== 0) //Enum ETipoCerca
            sigo.notifyError("viature: " + comet.data.viatura + " out");
        else if (comet.data.type== 1)
            sigo.notifyError("viature: " + comet.data.viatura + " out");

        color = comet.data.cercaColor;
        cerca = doDraw(comet.data, color);

        cadg.rastreador.cerca = true;
        cadg.rastreador.LoadRastreator(force, color );

        $('.blink').each(function () {
            var elem = $(this);
            setInterval(function () {
                if (elem.css('visibility') == 'hidden') {
                    elem.css('visibility', 'visible');
                } else {
                    elem.css('visibility', 'hidden');
                }
            }, 500);
        });

        //$(window).load(doBlink());
        //doBlink();
    });

loadRastreadorは多くのことを行います。一般的に: 1 - ajax 投稿 2 - マーカーの準備 3 - マップへのマーカーの追加

私が行う新しいマーカーの準備について:

//CERCA
    if (cerca) {
        desc = "<span class='blink' color: " + cor + "' >&nbsp;" + this.des + "</span>";
    }

このスパンをblinkクラスでキャッチしてjqueryで点滅させたい。

$('.blink').each(function () {
            var elem = $(this);
            setInterval(function () {
                if (elem.css('visibility') == 'hidden') {
                    elem.css('visibility', 'visible');
                } else {
                    elem.css('visibility', 'hidden');
                }
            }, 500);
        });

アプリケーションは少し複雑です..しかし、私の問題は単純です。何らかの理由で、jquery はこの新しい要素を認識できません。

私はすでに試しました:1 - このjquery命令をajaxのdoneメソッドメソッド内に入れます。2 - $(window).load() を使用する 3 - text-decorarion を使用する: 点滅<- firefox で動作しますが、お勧めしません。クロムはそれをまったく無視します。

注:このjquery命令をキャッチしてクロムコンソールまたはfirefugで実行すると、必要に応じて要素が点滅し始めます。

4

1 に答える 1

2

CSS を使用する:

.hidden {
    visibility:hidden;
}

jQuery クラス セレクターは、すべての要素をグループとして既に選択しています。ループする必要はありません。

JS:

setInterval(function () {  
    $('.blink').toggleClass('hidden');
}, 500);
于 2012-10-15T20:45:09.837 に答える