Autor Zpráva
Jan Knížek
Profil
Dobrý den,
ohledně tohoto tématu jsem se již ptal(viz. zde. Potřeboval bych ale poradit ještě v jedné věci.
Javascriptem (používám framework jQuery) přijmu klíčová slova ze souboru php. Vše mi funguje, akorát nemohu označovat myší položky. Asi vím kde je problém, ale neumím ho vyřešit. Když tam ty položky vložím rovnou ne pomocí javascriptu fungují, ale když je tam přidám javascriptem nefunugují. Označení položek řeším pomocí metody .each, kterou jsem zkoušel volat, vždy při aktualizaci slov, ale nepovedlo se:(. Doufám, že vše pochopíte ze zvírazněného zdrojového kódu.
////vyhledávání
var cislo_oznaceni = 0;
polozky();

function klicova_slova(){
  $.getJSON("klicova_slova.php?druh_hledani=k&obsah=" + $("#text_hledani").val() , function(vystup){
    $("#interaktivni_vyhledavani").html(vystup.slova);      
  });             
}

//přijmi klíčová slova
$(document).keyup(function(event){
  if(hledani != 0)
  {
    klicova_slova();
    polozky();
  }
});

//posuň označení při stisku kláves
$(document).keydown(function(event){

  if(event.keyCode == 38 && cislo_oznaceni > 1)
	 cislo_oznaceni --;
  else
  if(event.keyCode == 40 && cislo_oznaceni < $(".polozka_vyh").length)
	 cislo_oznaceni ++;

  $(".polozka_vyh").css({"background-color":"#fff"});
  $(".polozka_vyh").eq(cislo_oznaceni - 1).css({"background-color":"#d2d2d2"});
});

//skryj interaktivní vyhledávání
$("#interaktivni_vyhledavani").hide();

//funkice pro vytvoření označování myší
function polozky(){
//pro každou položku označuj slova
$(".polozka_vyh").each(function(){

  $(this).mouseenter(function(){
    $(this).css({"background-color":"#d2d2d2"});
    cislo_oznaceni = $(".polozka_vyh").index($(this));
  });

  $(this).mouseleave(function(){
    $(".polozka_vyh").css({"background-color":"#fff"});
  });
});
}

html kód položek vypadá takto:
<div id="interaktivni_vyhledavani">
    <div class="polozka_vyh"><a href="">asd</a></div>
</div>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0