подгрузка на ajax, или изменение кода на стороне клиента

Discussion in 'PHP' started by .::BARS::., 18 Oct 2009.

  1. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    вопрос такого плана... есть картинки

    img1 img2 img3

    3 дива

    <div pop></div>
    <div rap></div>
    <div popca></div>


    и

    поле для вывода текста

    ==========

    допустим при нажатии на img1 вызывается текст лалала - это впринципе ничего сложного, но как сменить <div pop></div> на
    <div rap></div>? т.е. нужно не подгрузить содержимое, а внести изменение в код...
    див должен смениться не перезагрузив страницу...
     
  2. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Что-то типа этого:
    Code:
    <script type="text/javascript">
    
     $(function() {
                $('#myLink').click(function() {
    	    $("#pop").attr({ 
                id: "rap",
    	   });
            });
        });
    
    </script>
    <a href="#" id="myLink">Click</a>
    <div id="pop">sss</div>
    
     
  3. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    - ниже уже ближе

    а как теперь передать в клике индефикатор.. на что менять, на pop или на popsa
     
  4. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    <script type="text/javascript">

    $(function() {
    $('#myLink').click(function() {
    $("#1").attr({
    id: "2",
    });
    });
    });

    </script>
    <a href="#" id="myLink">Click1</a>
    <a href="#" id="myLink">Click2</a>
    <a href="#" id="myLink">Click3</a>
    <div id="1">sss</div>
    <div id="2">sss</div>
    <div id="3">sss</div>

    -----------

    вот впринципе так... но в этом коде он сменит просто див с 1 на 2
    а если я опять нажму на клик1, но назад не меняет...
     
  5. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    jQuery - копай
     
  6. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    копал... ничего хорошего не накопал..
     
  7. aqqa

    aqqa Banned

    Joined:
    12 Jul 2008
    Messages:
    96
    Likes Received:
    16
    Reputations:
    3
    непонятно про какой ты идентификатор говоришь...
    Вот те офф. офигительная документация с примерами по жквери
    http://docs.jquery.com/Manipulation/replaceWith#content
     
  8. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Code:
    $(function() {
                $('#myLink').click(function() {
    		    var attribute = $("#pop").attr("id");
    			if(attribute == 'pop') {
    				//alert(attribute);
    				$("#pop").attr({ id: "rap",});
    			} else {
    				$("#rap").attr({ id: "pop",});
    			}
            });
        });
    
     
    1 person likes this.
  9. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    [​IMG]
    [​IMG]
    [​IMG]

    вот как надо...
    где крестик - это на что нажимает...
    цветная область - это и есть div
     
  10. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    совершенно не то
     
  11. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    А не проще ли просто при нажатии на кнопку скрывать не нужные дивы?

    visible:none
     
  12. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    не проще... нужно именно менять див
     
  13. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    PHP:
    <img alt="img1" src="./img1" onclick="document.getElementById('out').innerHTML =document.getElementById('pop').innerHTML">
    <
    img alt="img2" src="./img2" onclick="document.getElementById('out').innerHTML =document.getElementById('rap').innerHTML">
    <
    img alt="img3" src="./img3" onclick="document.getElementById('out').innerHTML =document.getElementById('popca').innerHTML">

    <
    div id="pop">123</div>
    <
    div id="rap">456</div>
    <
    div id="popca">789</div>

    <
    div id="out">тут будет содержимое дива</div>
     
  14. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Если я тебя правильно понял и нужно изменить параметры/содержимое сужествующего элемента в коде, то используй obj.getAttribute(name) и obj.setAttribute(name, value) для работы с его аттрибутами и obj.innerHtml/obj.outerHtml для его содержимого.

    Причем последний полностью перезапишет код, вместе с самим тегом:
    Code:
    было:
    
    <div id="foo">...</div>
    <div id="bar">...</div>
    <div id="other">...</div>
    
    выполнили:
    document.getElementById('bar').outerHTML = '<span>test</span>';
    
    стало:
    <div id="foo">...</div>
    <span>test</span>
    <div id="other">...</div>
    
     
  15. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Helios, не надо перезаписывать сам тег, нужно сменить только имя дива

    imajo.ati, нифига не выходит.... меняет только если див уже выведен в браузер.... подгрузки нет..



    [​IMG]


    вот что надо... при щелчке на первую афишу, картинка в левом верхнем углу - меняется на поп, на середину - на рок, на третью, - попса...

    вот как выглядет это в хтмл

     
  16. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    <div class="entry rnr-entry"> - вот этот фрагмент самый злостный...
     
  17. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    ну так кто тебе мешает пользоваться setAttribute?

    Code:
    function setClass(div_id, classname)
    {
        document.getElementById(div_id).setAttribute('class', 'entry ' + classname);
    }
    
     
    1 person likes this.