Folgen Sie dem Video unten, um zu sehen, wie Sie unsere Website als Icon auf Ihrem Homescreen erstellen.
Anmerkung: This feature may not be available in some browsers.
Wenn die bei eBay jQuery oder noch besser MooTools im Auktionsdokument von sich aus eingebunden hätten, wäre ich nicht ständig mit so halb funktionierenden Umstandslösungen unterwegs bzw. nicht unterwegs.Ich würde eindeutige(re) Funktionsnamen verwenden. Wen die Jungs von eBay nicht total verblödet sind nutzen sie auch ein Framework wie jQuery, MooTools etc. In dem Fall wäre $ schon vergeben. Für Scripte die in anderen Anwendungen zum Laufen kommen sollte man sich unbedingt an eine Namenskonvention halten wie z.B. "name_meiner_erweiterung_varaiable_a", dann ist man auf der sicheren Seite.
Ein Fehler kommt nicht, aber es macht einfach nicht das, was ich vorhatte, das es machen sollte (komischer Satzbau ).Das würde ich erst mal versuchen. Wird denn kein JS-Fehler ausgeworfen? Ansonsten sehe ich auch keinen Fehler.
Genau da steckt ja mein Problem, weil ich keine Ahnung hab, wie man das anders löst. Mit meinen Anfängerkenntnissen reichts da wohl nicht.Und ja, jetzt fällts mir auch auf. Ich hab den Code eben nur auf Fehler überprüft, und ganz vergessen zu checken was überhaupt passiert. In der Funktion change änderst Du ja nur die Variable. Das funktioniert auch. Aber dadurch ändert sich nichts am DOM bzw. den Styles. Die esprechenden Container müssen trotdem noch ein/ausgeblendet werden.
#myContent .DE,
#myContent .EN {
display:none;
}
#myContent.display_DE .DE {
display:block;
}
#myContent.display_EN .EN {
display:block;
}
<div id="myContent" class="display_EN">
<div class="DE">hier deutscher inhalt</div>
<div class="EN">hier englsicher inhalt</div>
</div>
function change(language) {
var myContent=document.getElementById("myContent");
removeClass(myContent,"display_DE");
removeClass(myContent,"display_EN");
if(language.options[0].selected) {
addClass(myContent,"display_EN")
}
else if (language.options[1].selected) {
addClass(myContent,"display_DE")
}
}
Hoffe das hilft Dir.
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
<style type="text/css">
<!--
#wrapper .de, #wrapper .en {
display: none;
visibility: hidden
}
#wrapper.german .de, #wrapper.english .en {
display: block;
visibility: visible
}
-->
</style>
<script type="text/javascript">
<!--
/* <![CDATA[ */
function choose(language) {
var contents = document.getElementById('wrapper');
if (language.options[0].selected) {
contents.className = 'german';
document.findingsearchbarfrm._nkw.value = 'Artikel suchen ...';
} else if (language.options[1].selected) {
contents.className = 'english';
document.findingsearchbarfrm._nkw.value = 'Search item ...';
}
}
/* ]]> */
//-->
</script>
<div id="wrapper" class="german">
<div id="top">
<div>
<p class="de">
Sprache:
</p>
<p class="en">
Language:
</p>
<form method="post" action="">
<select name="language" onchange="choose(this)">
<option selected>Deutsch</option>
<option>English</option>
</select>
</form>
<form method="get" action="http://shop.ebay.de/merchant/puristi" name="findingsearchbarfrm">
<input name="_nkw" type="text" value="Artikel suchen ..."
onblur="if (this.value == '') this.value = 'Artikel suchen ...';"
onfocus="if (this.value == 'Artikel suchen ...') this.value = '';" />
<input type="submit" />
</form>
</div>
</div>
</div>
<input name="_nkw" type="text" value="Artikel suchen ..."
onblur="if (this.value == '') this.value = 'Artikel suchen ...';"
onfocus="if (this.value == 'Artikel suchen ...') this.value = '';" />
Du kannst den Event-Handler direkt überschreiben:
/* <![CDATA[ */
document.findungsearchbarfrm._nkw.onfocus = function() {
if (this.value == 'Artikel suchen ...') this.value = '';
}
document.findingsearchbarfrm._nkw.onblur = function() {
if (this.value == '') this.value = 'Artikel suchen ...';
}
function choose(language) {
var contents = document.getElementById('wrapper');
if (language.options[0].selected) {
contents.className = 'german';
document.findingsearchbarfrm._nkw.value = 'Artikel suchen ...';
} else if (language.options[1].selected) {
contents.className = 'english';
document.findingsearchbarfrm._nkw.value = 'Search item ...';
}
}
/* ]]> */
Kannst Du nochmal ein aktuelles Beispiel online stellen?
Wenn Du es außerhalb der Funktion definierst, musst Du darauf achten, dass der Code nach dem Element findungsearchbarfrm._nkw steht, sonst ist es für JS zu dem Zeitpunkt noch gar nicht bekannt. Aber in der Funktion sollte es eigentlich funktionieren.
var i = 0;
// Image preloader
var path = 'images/';
var photo = [
'0.jpg',
'1.jpg',
'2.jpg',
'3.jpg'
];
function preload() {
for (i = 0; i < photo.length; i ++) {
var file = new Image();
file.src = path + photo[i];
}
}
preload();
// Language switcher
function choose(language) {
var content = document.getElementById('wrapper');
var search = document.getElementById('search');
var contents = [
{
choice: 'german',
placeholder: 'Artikel suchen ...'
},
{
choice: 'english',
placeholder: 'Search item ...'
}
];
for (i = 0; i < contents.length; i++) {
for (attr in contents[i]) {
if (language.options[i].selected) {
content.className = contents[i].choice;
search.value = contents[i].placeholder;
search.onfocus = function() {
if (this.value == contents[i].placeholder)
this.value = '';
}
search.onblur = function() {
if (this.value == '')
this.value = contents[i].placeholder;
}
}
}
}
}
Implied global: document 2 3, i 14 15 16 17 18 20 25
Problem at line 15 character 18: Bad for in variable 'attr'.
for (attr in contents) {
Problem at line 21 character 29: Expected '{' and instead saw 'this'.
this.value = '';
Problem at line 23 character 21: Be careful when making functions within a loop. Consider putting the function in a closure.
search.onblur = function() {
Problem at line 22 character 22: Missing semicolon.
}
Problem at line 24 character 40: Use '===' to compare with ''.
if (this.value == '')
Problem at line 25 character 29: Expected '{' and instead saw 'this'.
this.value = contents.placeholder
Problem at line 25 character 65: Missing semicolon.
this.value = contents.placeholder
Problem at line 27 character 17: Be careful when making functions within a loop. Consider putting the function in a closure.
}
Problem at line 26 character 22: Missing semicolon.
}
Problem at line 1 character 31: Unmatched '{'.
function choose(language) {