2017-02-05 6 views
1

私はHow can I dynamically create derived classes from a base classでたとえば次のような単純なjqueryのトグルボタンを持っている例から、他のJavaScriptの多くで作業していないトグル:私はボタンの動作のContactInfo取得しようとしていますはjQueryの近く

<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript"></script> 
 

 
    </style> 
 

 
    <script type="text/javascript"> 
 
    //Need an expert? I'm cody childers, cut-n-paste extraordinaire 
 

 
    $('#contact-info-button').click(function() { 
 
     $('#contact-info').toggle(); 
 
    }); 
 

 
    function toggle(div_id) { 
 
     var el = document.getElementById(div_id); 
 
     if (el.style.display == 'none') { 
 
     el.style.display = 'block'; 
 
     } else { 
 
     el.style.display = 'none'; 
 
     } 
 
    } 
 

 
    function blanket_size(popUpDivVar) { 
 
     if (typeof window.innerWidth != 'undefined') { 
 
     viewportheight = window.innerHeight; 
 
     } else { 
 
     viewportheight = document.documentElement.clientHeight; 
 
     } 
 
     if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) { 
 
     blanket_height = viewportheight; 
 
     } else { 
 
     if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) { 
 
      blanket_height = document.body.parentNode.clientHeight; 
 
     } else { 
 
      blanket_height = document.body.parentNode.scrollHeight; 
 
     } 
 
     } 
 
     var blanket = document.getElementById('blanket'); 
 
     blanket.style.height = blanket_height + 'px'; 
 
     var popUpDiv = document.getElementById(popUpDivVar); 
 
     popUpDiv_height = blanket_height/2 - 150; //150 is half popup's height 
 
     popUpDiv.style.top = popUpDiv_height + 'px'; 
 
    } 
 

 
    function window_pos(popUpDivVar) { 
 
     if (typeof window.innerWidth != 'undefined') { 
 
     viewportwidth = window.innerHeight; 
 
     } else { 
 
     viewportwidth = document.documentElement.clientHeight; 
 
     } 
 
     if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) { 
 
     window_width = viewportwidth; 
 
     } else { 
 
     if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) { 
 
      window_width = document.body.parentNode.clientWidth; 
 
     } else { 
 
      window_width = document.body.parentNode.scrollWidth; 
 
     } 
 
     } 
 
     var popUpDiv = document.getElementById(popUpDivVar); 
 
     window_width = window_width/2 - 150; //150 is half popup's width 
 
     popUpDiv.style.left = window_width + 'px'; 
 
    } 
 

 
    function popup(windowname) { 
 
     blanket_size(windowname); 
 
     window_pos(windowname); 
 
     toggle('blanket'); 
 
     toggle(windowname); 
 
    } 
 

 
    setInterval(function() { 
 
     if ($('#myDiv').hasClass('divClassRed')) { 
 
     $('#myDiv').addClass('divClassBlue').removeClass('divClassRed'); 
 

 
     } else { 
 
     $('#myDiv').addClass('divClassRed').removeClass('divClassBlue'); 
 
     } 
 

 
    }, 1000); 
 
    </script> 
 
</head> 
 

 

 
<div id="blanket" style="display:none;"></div> 
 
<div id="popUpDiv" style="display:none;"> 
 
    <p>trollface pic in here</p> 
 
    <a href="#" onclick="popup('popUpDiv')">Click me to close</a> 
 
</div> 
 

 
<p>lorem ipsum is.. <a href="#" onclick="popup('popUpDiv')">a joke here</a> 
 
</p> 
 

 
<button href="#contact-info" id="contact-info-button">Contact Info</button> 
 

 
<div id="contact-info" style="display: none;"> 
 
    <p>[email protected]</p> 
 
    <p>512-736-5555</p> 
 
</div>

。私はDOMに間違いがない。

答えて

1

私はそれが動作ご覧ください。あなたはhtmlで何らかのエラーを出しました。 </style>終了タグのように、<style>開始タグなし。いいえ<body>タグなどはこちらを参照:また$(document).ready()であなたのコードをラップタグ終了bodyタグの前と

//Need an expert? I'm cody childers, cut-n-paste extraordinaire 
 

 
     $('#contact-info-button').click(function() { 
 
      $('#contact-info').toggle(); 
 
     }); 
 

 
     function toggle(div_id) { 
 
     var el = document.getElementById(div_id); 
 
     if (el.style.display == 'none') { el.style.display = 'block';} 
 
     else {el.style.display = 'none';} 
 
    } 
 
    function blanket_size(popUpDivVar) { 
 
     if (typeof window.innerWidth != 'undefined') { 
 
      viewportheight = window.innerHeight; 
 
     } else { 
 
      viewportheight = document.documentElement.clientHeight; 
 
     } 
 
     if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) { 
 
      blanket_height = viewportheight; 
 
     } else { 
 
      if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) { 
 
       blanket_height = document.body.parentNode.clientHeight; 
 
      } else { 
 
       blanket_height = document.body.parentNode.scrollHeight; 
 
      } 
 
     } 
 
     var blanket = document.getElementById('blanket'); 
 
     blanket.style.height = blanket_height + 'px'; 
 
     var popUpDiv = document.getElementById(popUpDivVar); 
 
     popUpDiv_height=blanket_height/2-150;//150 is half popup's height 
 
     popUpDiv.style.top = popUpDiv_height + 'px'; 
 
    } 
 
    function window_pos(popUpDivVar) { 
 
     if (typeof window.innerWidth != 'undefined') { 
 
      viewportwidth = window.innerHeight; 
 
     } else { 
 
      viewportwidth = document.documentElement.clientHeight; 
 
     } 
 
     if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) { 
 
      window_width = viewportwidth; 
 
     } else { 
 
      if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) { 
 
       window_width = document.body.parentNode.clientWidth; 
 
      } else { 
 
       window_width = document.body.parentNode.scrollWidth; 
 
      } 
 
     } 
 
     var popUpDiv = document.getElementById(popUpDivVar); 
 
     window_width=window_width/2-150;//150 is half popup's width 
 
     popUpDiv.style.left = window_width + 'px'; 
 
    } 
 
    function popup(windowname) { 
 
     blanket_size(windowname); 
 
     window_pos(windowname); 
 
     toggle('blanket'); 
 
     toggle(windowname); 
 
    } 
 

 
    setInterval(function(){ 
 
     if($('#myDiv').hasClass('divClassRed')){ 
 
      $('#myDiv').addClass('divClassBlue').removeClass('divClassRed'); 
 

 
     }else{ 
 
        $('#myDiv').addClass('divClassRed').removeClass('divClassBlue'); 
 
     } 
 

 
    },1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="blanket" style="display:none;"></div> 
 
<div id="popUpDiv" style="display:none;"> 
 
    <p>trollface pic in here</p> 
 
    <a href="#" onclick="popup('popUpDiv')">Click me to close</a> 
 
</div> 
 

 
<p>lorem ipsum is.. <a href="#" onclick="popup('popUpDiv')">a joke here</a></p> 
 

 
<button href="#contact-info" id="contact-info-button">Contact Info</button> 
 

 
<div id="contact-info" style="display: none;"> 
 
    <p>[email protected]</p> 
 
    <p>512-736-5555</p> 
 
</div>

1

これを試してください。

$('#contact-info-button').click(function() { 
    $('#contact-info').slideToggle(); 
}); 

スライドトグル素晴らしいです:)

1

は、すべてのスクリプトを入れて、まただった頭の中でクローズスタイルのタグが、そこにあります無意識のうちに私は思います。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>Website</title> 
 
</head> 
 
<body> 
 
<div id="blanket" style="display:none;"></div> 
 
<div id="popUpDiv" style="display:none;"> 
 
    <p>trollface pic in here</p> 
 
    <a href="#" onclick="popup('popUpDiv')">Click me to close</a> 
 
</div> 
 

 
<p>lorem ipsum is.. <a href="#" onclick="popup('popUpDiv')">a joke here</a> 
 
</p> 
 

 
<button href="#contact-info" id="contact-info-button">Contact Info</button> 
 

 
<div id="contact-info" style="display: none;"> 
 
    <p>[email protected]</p> 
 
    <p>512-736-5555</p> 
 
</div> 
 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript"></script> 
 
    <script type="text/javascript">  
 
    $(document).ready(function(){ 
 
     $('#contact-info-button').click(function() { 
 
     $('#contact-info').toggle(); 
 
    }); 
 

 
    function toggle(div_id) { 
 
     var el = document.getElementById(div_id); 
 
     if (el.style.display == 'none') { 
 
     el.style.display = 'block'; 
 
     } else { 
 
     el.style.display = 'none'; 
 
     } 
 
    } 
 

 
    function blanket_size(popUpDivVar) { 
 
     if (typeof window.innerWidth != 'undefined') { 
 
     viewportheight = window.innerHeight; 
 
     } else { 
 
     viewportheight = document.documentElement.clientHeight; 
 
     } 
 
     if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) { 
 
     blanket_height = viewportheight; 
 
     } else { 
 
     if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) { 
 
      blanket_height = document.body.parentNode.clientHeight; 
 
     } else { 
 
      blanket_height = document.body.parentNode.scrollHeight; 
 
     } 
 
     } 
 
     var blanket = document.getElementById('blanket'); 
 
     blanket.style.height = blanket_height + 'px'; 
 
     var popUpDiv = document.getElementById(popUpDivVar); 
 
     popUpDiv_height = blanket_height/2 - 150; //150 is half popup's height 
 
     popUpDiv.style.top = popUpDiv_height + 'px'; 
 
    } 
 

 
    function window_pos(popUpDivVar) { 
 
     if (typeof window.innerWidth != 'undefined') { 
 
     viewportwidth = window.innerHeight; 
 
     } else { 
 
     viewportwidth = document.documentElement.clientHeight; 
 
     } 
 
     if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) { 
 
     window_width = viewportwidth; 
 
     } else { 
 
     if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) { 
 
      window_width = document.body.parentNode.clientWidth; 
 
     } else { 
 
      window_width = document.body.parentNode.scrollWidth; 
 
     } 
 
     } 
 
     var popUpDiv = document.getElementById(popUpDivVar); 
 
     window_width = window_width/2 - 150; //150 is half popup's width 
 
     popUpDiv.style.left = window_width + 'px'; 
 
    } 
 

 
    function popup(windowname) { 
 
     blanket_size(windowname); 
 
     window_pos(windowname); 
 
     toggle('blanket'); 
 
     toggle(windowname); 
 
    } 
 

 
    setInterval(function() { 
 
     if ($('#myDiv').hasClass('divClassRed')) { 
 
     $('#myDiv').addClass('divClassBlue').removeClass('divClassRed'); 
 

 
     } else { 
 
     $('#myDiv').addClass('divClassRed').removeClass('divClassBlue'); 
 
     } 
 

 
    }, 1000); 
 

 
    }); 
 

 
    </script> 
 
</body> 
 
</html>

関連する問題