Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   removeEventListener функции с параметрами (https://javascript.ru/forum/css-html/66872-removeeventlistener-funkcii-s-parametrami.html)

-=Vovka=- 15.01.2017 16:11

removeEventListener функции с параметрами
 
function myF(a,b,c)
{
 .....
}


<span id="sp1>&nbsp;</span>


добавляю по клику обработчик
var d=document.getElementById('sp1');
 d.addEventListener('click', function(){myF(1,2,3);});


не получается удалить:
var d=document.getElementById('sp1');
 d.removeEventListener('click', function(){myF(1,2,3);});

Как правильно добавить/удалить функцию с параметрами?

рони 15.01.2017 16:13

Цитата:

Сообщение от -=Vovka=-
.addEventListener('click', function foo(){myF(1,2,3);});

:-?

-=Vovka=- 15.01.2017 16:31

вот исправил, но обработчик все равно не удаляется:
<script language="javascript">
function myF(a,b,c)
{
  alert("aaaa");
}
</script>

<span id="sp1">Текст</span>

<script language="javascript">
var d=document.getElementById('sp1');
d.addEventListener('click', function foo(){myF(1,2,3);});
 
d.removeEventListener('click', function foo(){myF(1,2,3);});
</script>

рони 15.01.2017 16:58

-=Vovka=-,
<script>
function myF(a,b,c)
{
  alert("aaaa");
}
</script>

<span id="sp1">Текст</span>

<script language="javascript">
var d=document.getElementById('sp1');
function foo(){myF(1,2,3);}
d.addEventListener('click', foo);

d.removeEventListener('click', foo);
</script>

-=Vovka=- 15.01.2017 17:50

рони, спасибо, но немножко не так. В конечном итоге мне нужно чтоб после
addEventListener('click', function foo(){myF(1,2,3);});

получились такие вызовы:
<span id="sp1"  onClick="myF(1,2,3);">Текст1</span>
<span id="sp2"  onClick="myF(10,20,30);">Текст2</span>
<span id="sp3"  onClick="myF(11,21,31);">Текст3</span>

т.е. для всех <span> мне нужна одна функция-обработчик

рони 15.01.2017 20:31

-=Vovka=-,
а удалять как хотите?

-=Vovka=- 15.01.2017 21:13

В общем решил эту проблему просто: добавил еще один скрытый <cpan> и в него занес переменные, флаги... и использую onClick()
соответственно избавился от addEventListener/removeEventListener
Просто нет времени с этим разбираться...


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