Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > выборка из матрицы


Автор: Evgen24 19.12.2012, 23:30
Всем привет! я хочу сделать перемещение некого объекта по матрице, вообщем он перемещается, но почему то иногда рисуется вместо 1 рисуночка сразу несколько, причем например следующая позиция объекта с координатами х = 1 y = 2, и он рисует вместо 1 обектика 10 штук в координатах х = 1 а по Y размножает начиная с позиции 10 т.е. 1/2 (как и надо) а потом 1/10, 1/11 и т.д. думаю все дело вот в этом участочке кода: 

Код

                move_item_x += dx;
        move_item_y += dy;
        
        var img_ship11 = '<img src="jpg/ship1.png">';
        
        rx = Math.round(move_item_x);
        ry = Math.round(move_item_y);
        $("#rx").text(rx);
        $("#ry").text(ry);
    
        var str2 = "div[id*='x" + rx + "y" + ry + "']";
        $(str2).html(img_ship11);
                alert(str2);


алерт выдает правильное значение уникального id дива, но изменяется не только этот див а еще несколько начиная с y = 10 и более, причем не всегда а местами.

сама матрица вот так выглядит (учасок кода):

Код

    <div id="x0y0" class="map1" onClick="click1(0, 0)"> </div>
    <div id="x1y0" class="map1" onClick="click1(1, 0)"> </div>
    <div id="x2y0" class="map1" onClick="click1(2, 0)"> </div>
    <div id="x3y0" class="map1" onClick="click1(3, 0)"> </div>
    <div id="x4y0" class="map1" onClick="click1(4, 0)"> </div>
    <div id="x5y0" class="map1" onClick="click1(5, 0)"> </div>
    <div id="x6y0" class="map1" onClick="click1(6, 0)"> </div>
    <div id="x7y0" class="map1" onClick="click1(7, 0)"> </div>
    <div id="x8y0" class="map1" onClick="click1(8, 0)"> </div>
        <div id="x9y0" class="map1" onClick="click1(9, 0)"> </div>
    <div id="x10y0" class="map1" onClick="click1(10, 0)"> </div>
    <div id="x11y0" class="map1" onClick="click1(11, 0)"> </div>
    <div id="x12y0" class="map1" onClick="click1(12, 0)"> </div>
    <div id="x13y0" class="map1" onClick="click1(13, 0)"> </div>
    <div id="x14y0" class="map1" onClick="click1(14, 0)"> </div>
    <div id="x15y0" class="map1" onClick="click1(15, 0)"> </div>
    <div id="x16y0" class="map1" onClick="click1(16, 0)"> </div>
    <div id="x17y0" class="map1" onClick="click1(17, 0)"> </div>
    <div id="x18y0" class="map1" onClick="click1(18, 0)"> </div>
    <div id="x19y0" class="map1" onClick="click1(19, 0)"> </div>

    <div id="x0y1" class="map2" onClick="click1(0, 1)"> </div>
    <div id="x1y1" class="map1" onClick="click1(1, 1)"> </div>
    <div id="x2y1" class="map1" onClick="click1(2, 1)"> </div>
    <div id="x3y1" class="map1" onClick="click1(3, 1)"> </div>
    <div id="x4y1" class="map1" onClick="click1(4, 1)"> </div>


может стоит добавить к единичным значениям нули спереди? но ведь id же уникально. Или еще где ошибка?

Автор: mullih 19.12.2012, 23:53
строка 11
Код

var str2 = "div[id*='x" + rx + "y" + ry + "']";

селектор, звездочку уберите плиз


Взглянуте ссылочку http://smarly.net/pro-jquery-osnovi-css#text-252, в чем разница

Автор: Evgen24 19.12.2012, 23:59
хммм, помогло. Спасибо огромное.

Автор: Aliance 24.12.2012, 11:34
Кто же делает перемещение так, через обращение к ДОМ. Нагрузочно это. Чем animate не нравится?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)