2017-11-18 22 views
0

함수 프로그래밍에 익숙하지 않습니다. Haskell과 Yesodod에 대한 새로운 내용.jQuery on yesod haskell

난 그냥 단지

(미안하지만, 영어 나의 모국어가 아닌)

module Handler.Share where 

import Import 
import Text.Lucius 

menu :: Widget 
menu = [whamlet| 
<a onclick="showlogin()"> 
    Entrar 
    <div #login> 
    <h2> 
     Login 
     <p>Usuário: 
     <p>Senha: 
     <p> 
     <a> 
      Esqueci minha senha 
     <br> 
     <a> 
      Novo cadastro 

|] 

getShareR :: Handler Html 
getShareR = do 
    defaultLayout $ do 
     addScriptRemote "https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" 
     toWidgetHead [julius|  
      function showlogin(){ 
      $("#login").show("slow"); 
      } 
     |] 
     toWidget $ $(luciusFile "templates/share.lucius") 
     $(whamletFile "templates/share.hamlet") 

돌아 로그인 폼과 함께 'DIV'을 보여주기 위해 노력하고있어 : catch되지 않은 ReferenceError가 : $가 정의되어 있지 않습니다

답변

0

'toWidgetHead'대신 'toWidgetHead'를 사용하여 페이지 끝 부분에서 스크립트를로드하는 방법을 배웠습니다.

getShareR :: Handler Html 
getShareR = do 
    defaultLayout $ do 
     addStylesheet $ StaticR css_bootstrap_css 
     addScriptRemote "https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" 
     toWidget [julius| 
      $(document).mouseup(function (e) { 
      var div = $("#login"); 
      if (!div.is(e.target) && div.has(e.target).length === 0) { 
       if (div.is(':visible')) { 
        div.toggle("slow"); 
       } 
      } 
      }); 

      function showlogin(){ 
      $("#login").show("slow"); 
      } 
     |] 
     toWidget $ $(luciusFile "templates/share.lucius") 
     $(whamletFile "templates/share.hamlet")