2017-04-15 82 views
0

剛開始學習js。如何在init中添加函數

一旦你點擊覆蓋,切換類也會被激活。

第一個代碼會在網站上生成疊加層,一旦它打開並且您點擊覆蓋層,它將關閉。

<script> 

init=()=>{ 
    //SELECT & BIND (CLICK) EVENT 
    document.querySelector('a.menuToggle').addEventListener('click',modal.overlay.init); 
} 
modal={ 
    overlay:{ 
     init:()=>{ 
      //CREATE OVERLAY 
      var overlay = document.createElement('overlay'); 
      overlay.id = 'welcomeDivs'; 
      //SET (CLICK) EVENT TO REMOVE ITSLEF 
      overlay.addEventListener('click',modal.overlay.remove); 

      //APPEND TO INTERFACE 
      document.body.appendChild(overlay); 

     }, 
     remove:(e)=>{ 
      //REMOVE ITSELF 
      e.target.parentNode.removeChild(e.target); 
     }  
    } 
} 

//ON DOCUMENT LOAD RUN INIT 
document.addEventListener('DOMContentLoaded',init); 

</script> 

我想要做的是一旦你點擊正文或疊加層,切換類也將被點擊。

<script type="text/javascript"> 
$(function() { 
     $("#welcomeDivs").click(function() { 
      $(".parela").toggleClass('myClass'); 
     }); 
    }); 
</script> 

你能幫助我這個請

+0

請始終使用jQuery,如果你把它作爲$(「body」)。append($('').on('click',function(){....})))' – mplungjan

回答

0

你的代碼是正確的,但你在錯誤的方式使用它。因爲你綁定點擊事件沒有存在選擇器

$(function() { 
     $("#welcomeDivs").click(function() { 
      $(".parela").toggleClass('myClass'); 
     }); 
    }); 

在上面的代碼中,你嘗試將事件綁定到無存在的代碼。相反,您可以使用此代碼

$(function() { 
     $('body').on('click',"#welcomeDivs",function(event) { 
      if($(event.target).attr('id')=='welcomeDivs') 
      { 
      $(".parela").toggleClass('myClass'); 
      } 
     }); 
    }); 
+0

'clickDirectory'id事件。那麼爲什麼要匹配相同的ID在'如果'情況下 – prasanth

1

試試這個

  1. 首先追加到身體然後應用點擊功能。
  2. 添加一些innerHTML疊加tag.Then只有你可以看到覆蓋在身體
  3. 並與click事件使用申請使用jQuery
  4. on()功能
  5. Finaly看到的parelaouterHTML中的console.log

$(function() { 
 
     $(document).on('click','#welcomeDivs',function() { 
 
      $(".parela").toggleClass('myClass'); 
 
      console.log($(".parela")[0].outerHTML) 
 
     }); 
 
    }); 
 
    
 
    init=()=>{ document.querySelector('a.menuToggle').addEventListener('click',modal.overlay.init); 
 
} 
 
modal={ 
 
    overlay:{ 
 
     init:()=>{ 
 
      var overlay = document.createElement('overlay'); 
 
      overlay.id = 'welcomeDivs'; 
 
      overlay.innerHTML ="i m overlay text" 
 
      document.body.appendChild(overlay); 
 
      overlay.addEventListener('click',modal.overlay.remove); 
 

 
     }, 
 
     remove:(e)=>{ 
 
      e.target.parentNode.removeChild(e.target); 
 
     }  
 
    } 
 
} 
 

 
//ON DOCUMENT LOAD RUN INIT 
 
document.addEventListener('DOMContentLoaded',init);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<a class="menuToggle">click</a> 
 
<p class="parela">i m a parela</p>

相關問題