| Autor | Zpráva | ||
|---|---|---|---|
| kohl Profil |
Dobrý den, dělám našeptávač. Vše funguje, až na to, že když najedu na položku tak se přidá jen prázdný class.
function suggest() {
var value = document.getElementById('search_text').value;
var number_letter = value.replace(/^\s+|\s+$/g, "").length;
element = document.getElementById('suggest');
if (number_letter > 0 && number_letter < 60) {
var code = window.event.charCode || window.event.keyCode;
if (code <= 40 && code >= 37 && element !== "") {
keyboard_select(search_word, code, element);
} else {
ajax("./common/suggest.php?q=" + encodeURIComponent(value),
function(data) {
var data = eval('(' + data.responseText + ')');
element.innerHTML = "";
if (data.length > 0) {
var ul = document.createElement('ul');
for (var i = 0; i < data.length; i++) {
li = document.createElement('li');
li.innerHTML = data[i];
//tato funkce mi funguje jak ma
li.onclick = function() {
document.getElementById('search_text').value = this.innerHTML;
this.form.submit();
return false;
};
//tato funkce mi nefunguje
li.onmouseover = function() {
this.className = 'suggest_hover';
return false;
};
//tato funkce mi nefunguje
li.onmouseout = function() {
this.className = "";
return false;
};
ul.appendChild(li);
}
element.appendChild(ul);
}
});
search_word = value;
select_current = 0;
}
} else {
element.innerHTML = "";
}
}Děkuji za odpověď. |
||
| Camo Profil |
Pred to li na začiatku cyklu by malo ísť var. Ale či je to v tom neviem, lebo mi to v princípe funguje aj bez toho...
Urobil som z toho toho a funguje to úplne v pohode. Takže chyba bude asi niekde mimo túto časť. <!DOCTYPE HTML public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
.green{color:green}
.red{color:red}
</style>
</head>
<h1>toto je DROM.php</h1>
<a href="" onclick="on('data'); return false;">fc on</a>
<div id="d1"></div>
<script type="text/javascript">
function on(data) {
element=document.getElementById('d1');
element.innerHTML = "";
if (data.length > 0) {
var ul = document.createElement('ul');
for (var i = 0; i < data.length; i++) {
li = document.createElement('li');
li.innerHTML = data[i];
//tato funkce mi funguje jak ma
li.onclick = function() {
alert("ok");
return false;
};
//tato funkce mi nefunguje
li.onmouseover = function() {
this.className = 'green';
return false;
};
//tato funkce mi nefunguje
li.onmouseout = function() {
this.className = "red";
return false;
};
ul.appendChild(li);
}
element.appendChild(ul);
}
}
</script>
</body>
</html> |
||
| Chamurappi Profil |
#3 · Zasláno: 15. 4. 2013, 15:48:51
Reaguji na kohla:
Událost onmouseout se vyvolává, i pokud přejedeš na potomka <li>. Z jakého důvodu nemůžeš/nechceš místo skriptu použít pseudotřídu :hover?
„ var code = window.event.charCode || window.event.keyCode;“
Tohle ti nepoběží ve všech prohlížečích. |
||
|
Časová prodleva: 13 let
|
|||
0