当已经有点击操作时,如何隐藏和显示<div> onclick?</div>

时间:2013-03-21 18:23:22

标签: javascript css ajax show-hide blogger

我尝试过很多东西,但似乎没什么用。

我想隐藏<div id="disqus_thread">,并在点击“评论”链接时显示,当评论加载时(链接位于我文章的底部: {em>评论“,在my blog)上。

我有onclick的链接,但我无法添加其他操作。

我怎样才能让这两项操作触发点击?

CSS:

#disqus_thread {display:none; margin-top: -40px; background: #fff;
background: #fff;
padding:20px;
border: 1px solid #ddd;}

我试图用css隐藏div,但我不知道如何揭示它。


HTML:  

<li class='commenting'>
  <span class=''>
    <a class='' expr:href='data:post.addCommentUrl' onclick='$.ajaxSetup({cache:true});$.getScript(&quot;http://julienlussiez.disqus.com/embed.js&quot;);$.ajaxSetup({cache:false});$(&quot;#disqus_loader&quot;).remove();' title='Laisser un commentaire'>Commentaires</a>
  </span>
</li>

onclick功能,但我无法添加任何内容 这是不正确的,或者更糟糕的是,写得不好?


脚本:

<script>
    function load_disqus()
    {
      var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
      dsq.src = "http://julienlussiez.disqus.com/embed.js";
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
      var ldr = document.getElementById('disqus_loader');
      ldr.parentNode.removeChild(ldr);
    }
</script>



<script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    $.Ajaxify.pageChange(function() {

        var disqus_shortname = 'julienlussiez';
        // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();});
</script>
<a name="bottom"></a>

此脚本从disqus加载注释而不会中断。这很好,因为我的博客上有一个音乐播放器。

1 个答案:

答案 0 :(得分:3)

不幸的是,您只能为元素分配一个单击功能。

要使其正常工作,请尝试将您的函数堆叠到一个新函数中,然后通过javascript将其分配到onclick

HTML:

<div id='test'></div>

JS:

var div = document.getElementById('test');

div.onclick = function () { alert("some function") };

// hides the div
div.onclick = stackFunction(div.onclick, function () { 
    div.style.display = "none"; 
});

function stackFunction(last, f) {
    return function () { last(); f(); };
}

Fiddle