Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Несколько сценариев одной функцией (https://javascript.ru/forum/events/34781-neskolko-scenariev-odnojj-funkciejj.html)

Deff 18.01.2013 23:37

<style type="text/css">
div[class] {
 border:red solid 1px;
 width:130px;
 margin:2px;
 padding:6px;
}
div[id] {
 width:230px;
 height:40px;
 padding:6px;
 border:blue solid 1px;
}
</style>


<script type="text/javascript">
var obj={
   Marker:'Текст для Marker', 
   products:'Текст для products', 
   services:'BLa-BLa-Текст для services'
}
function change1(elem) {
document.getElementById('center').innerHTML = obj[elem.className];
}
</script>


<div id="center"></div>

<br />
<br />
<div onclick="change1(this)" class="products"></div>
<div onclick="change1(this)" class="services"></div>
<div onclick="change1(this)" class="Marker"></div>

Marker 18.01.2013 23:43

Но он показывает в том же диве, а мне надо в другом!
Я же обьяснил как мне надо :) Ваш пример добавляет в тот же див где расположен onclick а мне надо в другом. См. выше как надо. Спасибо

Deff 18.01.2013 23:50

Marker,
:) Поправил

Marker 18.01.2013 23:58

Спасибо, работает!
Но дело в том что наш учитель ещё не обьяснял такой синтакс 

var obj={
   Marker:'Текст для Marker', 
   products:'Текст для products', 
   services:'BLa-BLa-Текст для services'
}

obj[elem.className];


Я уверен он бы не стал задавать задания с таким решением.
Может смогу обьяснить словами, как он говорит логически сделать.
Делаем функцию change (popox). Если popox равно document.getElementById("products"), то getElementById("center").innerHTML = "ТЕКСТ ДЛЯ PRODUCT". Так же со всеми другими. Задачу надо решить параметрами функции. В первом сообщении я напиасал, как я представляю задачу логически, но она не работает, пожайлуста можете переделать код именно так, как я сказал? Буду очень благодарен.

Deff 19.01.2013 00:19

<style type="text/css">
div[class] {
 border:red solid 1px;
 width:130px;
 margin:2px;
 padding:6px;
}
div[id] {
 width:230px;
 height:40px;
 padding:6px;
 border:blue solid 1px;
}
</style>


<script type="text/javascript">
function change1(elem) {
 var a=elem.className;
 var b='';
   if(a=='products') b = 'Текст для products';
   if(a=='main') b = 'BLa-BLa-Текст для main';
   document.getElementById('center').innerHTML = b;
}
</script>


<div id="center"></div>

<br />
<br />
<div onclick="change1(this)" class="main"></div>
<div onclick="change1(this)" class="products"></div>

Marker 19.01.2013 00:21

Теперь лучше, но все же, мы не учили var a=elem.className,b; Как можно заменить, как сделать так как я написал?

Deff 19.01.2013 00:25

Marker,
document.getElementById("products") - не получицо - посколь у Вас класс а не id
Для ID нужны div такого вида

<div onclick="change1()" id="main"></div>
<div onclick="change1()" id="products"></div>

Marker 19.01.2013 00:28

Ну пусть будут id, напишите с document.getElementById("products"), но не только для products, но и для main. Я изменю класс на id

Deff 19.01.2013 00:38

<style type="text/css">
div {
 border:red solid 1px;
 width:130px;
 margin:2px;
 padding:6px;
}
#center {
 width:230px;
 height:40px;
 padding:6px;
 border:blue solid 1px;
}
</style>


<script type="text/javascript">
function change1() {
   var b = 'BLa-BLa-Текст для main';
   document.getElementById('center').innerHTML = b;
}
function change2() {
   var b= 'BLa-BLa-Текст для products';
   document.getElementById('center').innerHTML = b;
}
</script>


<div id="center"></div>

<br />
<br />

<div onclick="change1()" class="main"></div>
<div onclick="change2()" class="products"></div>

Marker 19.01.2013 00:40

Спасибо!! То что надо!
Если у вас есть время, напишите мне пару задач вроде этого(используя тот же метод) Чтобы это знание во мне закрепилось!

Ещё раз благодарю!


Часовой пояс GMT +3, время: 08:59.