2015-04-28 4 views
0

Я хотел бы преобразовать обработчик события в событие click jQuery стиля, но ему, похоже, не нравится проходить событие через, возможно, его, потому что его не анонимная функция больше?преобразовать обработчик события javascript в jquery

 // variables 
     var faqOne = document.getElementById("faqOne"); 
     var $hiddenOne = $(".faqOneHidden"); 


     // javascript event handler works! 
     faqOne.addEventListener("click", function(e){ 
     showFaqOne.showClickedFaq(e); 
     }, false); 
     // javascript event handle - doesnt work! 
     $("#faqOne").click(function(){ 
      showFaqOne.showClickedFaq(e); 
     }); 
     // constructor 
     function DisplayQFaqs(link, faq){ 
      this.link = link; 
      this.faq = faq; 
     } 
     // method prototype 
     DisplayQFaqs.prototype.showClickedFaq = function(e){ 
       var el = e.currentTarget; 
       if(el === this.link) { 

        this.faq.toggle("slow", function(){ 
        }); 
       } 
     }; 
     // new DisplayQFaqs Objects 
     var showFaqOne = new DisplayQFaqs(faqOne,$hiddenOne); 
+0

Вы знаете, если функция вызывается обработчик? Возможно, проверьте это, поставив предупреждение («a»); там? – byteSlayer

+0

скрипка: http://jsfiddle.net/rgthree/93bm0gs3/ – user3358014

+0

Скрипка не была импортирована jQuery. Это работает - http://jsfiddle.net/93bm0gs3/2/ – byteSlayer

ответ

5

Ваш e не определен внутри

$("#faqOne").click(function(){ 
     showFaqOne.showClickedFaq(e); 
    }); 

изменить его на

$("#faqOne").click(function(e){//Now e is there 
     showFaqOne.showClickedFaq(e); 
    }); 
+0

спасибо, что это работает сейчас! – user3358014

+0

@ user3358014, вы должны принять ответ, если он работает :) – Zee

Смежные вопросы