emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Some Javascript Adventures


From: Sebastian Rose
Subject: Re: [Orgmode] Some Javascript Adventures
Date: Tue, 12 May 2009 17:51:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux)


If your Sitmap looks like this normaly:


  * Folder 1
    - item 1.1
    - item 1.2
    * folder 1.1
      - file 1.1.1
    * folder 1.2
      - file 1.2.1
  * Folder 2
    - item 2.1
    - item 2.2

It collapses all, but the top folders on startup:


  * Folder 1
  * Folder 2


Each folder can be clicked, to expand and collapse from now on.


To do this with each TOC, just use another CSS selector in the jQuery
code: 



 <!--/*--><![CDATA[/*><!--*/
 $(document).ready(
  function(){
  $("#text-table-of-contents ul").eq(0).find("li").each(

 //      ^--- and here

    function(){if($(this).children().eq(0)){
      $(this).css({cursor: "pointer"});
      $(this).bind(
        "click",
        function(){
          if($(this).children().eq(0).is(":visible")) $
 (this).children().eq(0).slideUp(250);
          else $(this).children().eq(0).slideDown(250);
          return false;});}});
  $("#text-table-of-contents ul").eq(0).find("ul").hide();

 //      ^--- and here

 });


If you use correct styles, you could even create a horizontal menubar
with dropdown menus from this.



Best


   Sebastian



Carsten Dominik <address@hidden> writes:
> On May 12, 2009, at 3:48 PM, Sebastian Rose wrote:
>
>>
>> jQuery is  _the_ JS framework :-)
>> I use it all the time here...
>>
>>
>> I have this in my Sitemap:
>>
>> <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
>> <script type="text/javascript">
>> <!--/*--><![CDATA[/*><!--*/
>> var doMenu = true;
>> $(document).ready(
>>  function(){
>>  $("ul").eq(0).find("li").each(
>>    function(){if($(this).children().eq(0)){
>>      $(this).css({cursor: "pointer"});
>>      $(this).bind(
>>        "click",
>>        function(){
>>          if($(this).children().eq(0).is(":visible")) $
>> (this).children().eq(0).slideUp(250);
>>          else $(this).children().eq(0).slideDown(250);
>>          return false;});}});
>>  $("ul").eq(0).find("ul").hide();
>> });
>
> What does this code do?  Just curious....
>
> - Carsten
>
>
>>
>>
>>
>>
>> Ian Barton <address@hidden> writes:
>>> Yesterday on my bike ride I was listening to an old FLOSS Podcast about
>>> jQuery. There are a few things that Sebastian's org-info-js doesn't do, that
>>> I
>>> would like. Unfortunately, my knowledge of javascript is almost zero.
>>>
>>> However, the jQuery library seems to have excellent documentation. More
>>> importantly using jQuery seems to mostly protect you from trying to debug
>>> your
>>> code on lots of different browsers, since the jQuery author has already done
>>> it
>>> for you.
>>>
>>> After some experiments I cam up with the following snippets which toggle the
>>> visibility of DONE tasks and also timestamps. Hope someone finds them 
>>> useful!
>>>
>>> Ian.
>>>
>>> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js
>>> "
>>> type="text/javascript"></script>
>>>
>>> <script type="text/javascript" >
>>> <!--/*--><![CDATA[/*><!--*/
>>>
>>>     $(document).ready(function(){
>>>
>>>       $('#toggletimestamp').click(function() {
>>>            $('span.timestamp-wrapper').toggle();
>>>       });
>>>
>>>       $('#toggledone').click(function() {
>>>            myParent = $("span.done").parent();
>>>            myParent.toggle();
>>>       });
>>>     });
>>> /*]]>*/-->
>>> </script>
>>>
>>> You can set up a buttons to call these functions:
>>>
>>> <input type="submit"
>>> name="toggletimestamp"
>>> value="Toggle Time Stamp"
>>> id="toggletimestamp" />
>>>
>>> <input type="submit"
>>>   name="toggledone"
>>>   value="Toggle Done"
>>> id="toggledone" />
>>>
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode




reply via email to

[Prev in Thread] Current Thread [Next in Thread]