Вы вызываете функцию в вашем вызове "addEventListener". То есть в этом коде (разбит на две строки):
if (t_elements[i].addEventListener){
t_elements[i].addEventListener("click",checkCommentTrigger(this, t_comments, triggerValue),true);}
вы вызываете функцию "checkCommentTrigger ()". Что вам нужно сделать, это передать ссылку в функцию, так что-то вроде этого:
if (t_elements[i].addEventListener){
t_elements[i].addEventListener("click",function() { checkCommentTrigger(this, t_comments, triggerValue) },true);}
То же самое для другой ветви "if":
else {
t_elements[i].attachEvent('onclick',function() { checkCommentTrigger(this,t_comments,triggerValue) });}
Кроме того, вы хотите "attachEvent ()" для IE, а не "addEvent ()".
изменить & mdash; Глядя на это снова, в этом коде будет проблема, если вы будете использовать его, как я писал выше. Проблема будет связана со ссылкой на this
в функции, используемой в качестве обработчика событий. Я думаю, что вы хотите, чтобы первым аргументом "checkCommentTrigger" был проверяемый элемент. Возможно, проще всего установить отдельную функцию :
function handlerFor(element, comments, value) {
return function() {
checkCommentTrigger(element, comments, value);
}
}
Затем вы можете вызвать это, когда вам нужна функция обработчика события:
if (t_elements[i].addEventListener){
t_elements[i].addEventListener("click", handlerFor(t_elements[i], t_comments, triggerValue), true);
}