2016-04-05 2 views
1
function eventlisternOnclick(_class, ability, _src, _id){ 
    var cell_onclick = document.querySelectorAll(_class); 
    for(var c = 0; c < cell_onclick.length; c++){ 
    cell_onclick[c].addEventListener('click', function(){ 
    //problem here , ability(_src) = fun1(mysrc); 
    //error 
    ability(_src); 
    }, false); 
    } 
} 

function fun1(mysrc){ 
console.log(); 
} 

eventlisternOnclick("abc", "fun1", "this.src", null); 

fun1 - это функция, и я пытался установить переменную в eventlisterOnclick и запускать там функцию, но когда я набираю способность (_src); это не сработает. как установить функцию в моем eventlisternOnclick.set variable function not working

+2

'' fun1 "' ==> 'fun1' в' eventlisternOnclick («abc», «fun1», ... '. 'fun1' - это функция, а не строка. – Tushar

+0

Извините, я не могу понять, что вы имеете в виду, вы объясните больше? – darkness

+1

При передаче функции 'fun1' в' eventlisternOnclick() 'она должна передаваться как имя функции, т. Е. Имя функции. Он не должен быть заключен в кавычки. – Tushar

ответ

1

, если переданный параметр всегда класс затем заменить

document.querySelectorAll(_class); 

с

document.querySelectorAll("." + _class); 

Кроме того, fun1 является строкой, поэтому если fun1 доступен этой области, то попробуйте

eventlisternOnclick("abc", fun1, "this.src", null); 

Полная функция может быть

function eventlisternOnclick(_class, ability, _id){ 
    var cell_onclick = document.querySelectorAll(_class); 
    for(var c = 0; c < cell_onclick.length; c++){ 
    cell_onclick[c].addEventListener('click', function(){ 
     ability(this.getAttribute("src")); 
    }, false); 
    } 
} 

function fun1(mysrc){ 
    console.log(); 
} 

eventlisternOnclick("abc", fun1, null); 
+0

Я думаю, '' this.src'' также должен быть 'this.src' – Tushar

+0

@Tushar,' this.src' в качестве аргумента будет 'оценен', не передан, как мы ожидаем. Моя догадка' undefined' будет пройден! – Rayon

+0

@ Тушар, он не упомянул, что он намеревается с этим делать. – gurvinder372