Re: [Orgmode] Some Javascript Adventures

2009-05-15 Thread Sebastian Rose

Applied. Learning english never ends... :)



  Sebastian

Ian Barton li...@manor-farm.org writes:
 Unfortunately, it's tricky to get jQuery to work in Opera together with
 org-info.js (org-info.js works, jQuery doesn't :) ).
 Even in Firefox, if you place the jQuery stuff below the org-info.js
 stuff, it stops working.

 We should realy create a jQuery version of org-info.js...


 Thanks for the tip about the sitemap. Ihad wondered about trying to create a
 jQuery version, but I need to do a lot more learning first!

 Attached is a patch that fixes a mis-spelling in org-info.js.

 Ian.


 diff --git a/code/org-info-js/org-info-src.js 
 b/code/org-info-js/org-info-src.js
 index fe73ef1..2e1d4bb 100644
 --- a/code/org-info-js/org-info-src.js
 +++ b/code/org-info-js/org-info-src.js
 @@ -71,7 +71,7 @@ function OrgNode ( _div, _heading, _link, _depth, _parent, 
 _base_id)
this.link = _link;
this.hasHighlight = false;  // Node highlighted (search)
this.parent = _parent;
 -  this.durty = false; // Node is durty, when children get
 +  this.dirty = false; // Node is dirty, when children get
// folded seperatly.
this.state = OrgNode.STATE_FOLDED;
this.depth = _depth;// The Rootelement will have
 @@ -250,7 +250,7 @@ OrgNode.prototype.hideAllChildren = function ()
  
  /**
   * This one is called onclick() to toggle the folding state of the node.
 - * This one sets it's parent durty, since node is folded individually. Hence 
 the
 + * This one sets it's parent dirty, since node is folded individually. Hence 
 the
   * next folding of parent has to collapse all.
   * @param show_childrens_folders Boolean. This is only used for the special 
 way
   * of toggling of the ROOT element. If true, prevents this OrgNode from 
 showing
 @@ -259,9 +259,9 @@ OrgNode.prototype.hideAllChildren = function ()
  OrgNode.prototype.fold = function (hide_folder)
  {
if(this.parent)
 -this.parent.durty = true;
 -  if(this.durty) {
 -this.durty = false;
 +this.parent.dirty = true;
 +  if(this.dirty) {
 +this.dirty = false;
  this.state = OrgNode.STATE_UNFOLDED; // so next state is FOLDED. See 
 below.
}
  
 @@ -1200,7 +1200,7 @@ var org_html_manager = {
  
toggleGlobaly: function ()
{
 -if(this.ROOT.durty) {
 +if(this.ROOT.dirty) {
this.ROOT.state = OrgNode.STATE_UNFOLDED;
  }
  
 @@ -1224,8 +1224,8 @@ var org_html_manager = {
this.ROOT.state = OrgNode.STATE_UNFOLDED;
  }
  
 -// All this sets ROOT durty again. So clean it:
 -this.ROOT.durty = false;
 +// All this sets ROOT dirty again. So clean it:
 +this.ROOT.dirty = false;
},
  
  
 @@ -1793,7 +1793,7 @@ var org_html_manager = {
  
this.hideConsole();
if(this.PLAIN_VIEW != this.VIEW) this.plainView();
 -  this.ROOT.durty = true;
 +  this.ROOT.dirty = true;
this.toggleGlobaly();
for(var i = 0; i  this.SECS.length; ++i) {
  OrgNode.showElement(this.SECS[i].div);


___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-14 Thread Ian Barton



Unfortunately, it's tricky to get jQuery to work in Opera together with
org-info.js (org-info.js works, jQuery doesn't :) ).
Even in Firefox, if you place the jQuery stuff below the org-info.js
stuff, it stops working.

We should realy create a jQuery version of org-info.js...


Thanks for the tip about the sitemap. Ihad wondered about trying to 
create a jQuery version, but I need to do a lot more learning first!


Attached is a patch that fixes a mis-spelling in org-info.js.

Ian.

diff --git a/code/org-info-js/org-info-src.js b/code/org-info-js/org-info-src.js
index fe73ef1..2e1d4bb 100644
--- a/code/org-info-js/org-info-src.js
+++ b/code/org-info-js/org-info-src.js
@@ -71,7 +71,7 @@ function OrgNode ( _div, _heading, _link, _depth, _parent, _base_id)
   this.link = _link;
   this.hasHighlight = false;  // Node highlighted (search)
   this.parent = _parent;
-  this.durty = false; // Node is durty, when children get
+  this.dirty = false; // Node is dirty, when children get
   // folded seperatly.
   this.state = OrgNode.STATE_FOLDED;
   this.depth = _depth;// The Rootelement will have
@@ -250,7 +250,7 @@ OrgNode.prototype.hideAllChildren = function ()
 
 /**
  * This one is called onclick() to toggle the folding state of the node.
- * This one sets it's parent durty, since node is folded individually. Hence the
+ * This one sets it's parent dirty, since node is folded individually. Hence the
  * next folding of parent has to collapse all.
  * @param show_childrens_folders Boolean. This is only used for the special way
  * of toggling of the ROOT element. If true, prevents this OrgNode from showing
@@ -259,9 +259,9 @@ OrgNode.prototype.hideAllChildren = function ()
 OrgNode.prototype.fold = function (hide_folder)
 {
   if(this.parent)
-this.parent.durty = true;
-  if(this.durty) {
-this.durty = false;
+this.parent.dirty = true;
+  if(this.dirty) {
+this.dirty = false;
 this.state = OrgNode.STATE_UNFOLDED; // so next state is FOLDED. See below.
   }
 
@@ -1200,7 +1200,7 @@ var org_html_manager = {
 
   toggleGlobaly: function ()
   {
-if(this.ROOT.durty) {
+if(this.ROOT.dirty) {
   this.ROOT.state = OrgNode.STATE_UNFOLDED;
 }
 
@@ -1224,8 +1224,8 @@ var org_html_manager = {
   this.ROOT.state = OrgNode.STATE_UNFOLDED;
 }
 
-// All this sets ROOT durty again. So clean it:
-this.ROOT.durty = false;
+// All this sets ROOT dirty again. So clean it:
+this.ROOT.dirty = false;
   },
 
 
@@ -1793,7 +1793,7 @@ var org_html_manager = {
 
   this.hideConsole();
   if(this.PLAIN_VIEW != this.VIEW) this.plainView();
-  this.ROOT.durty = true;
+  this.ROOT.dirty = true;
   this.toggleGlobaly();
   for(var i = 0; i  this.SECS.length; ++i) {
 OrgNode.showElement(this.SECS[i].div);
___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-14 Thread Ian Barton
I have been wondering if it would somehow be possible to get the #+STYLE 
option to allow for an include file in addition to directly typing stuff 
in. The maintainability of multi line STYLE options would then be much 
easier.


Ian.


And this is, how you need to do it, if you have the sitemap included:


= ---8-8-8---
#+STYLE: script type=text/javascript src=jquery-1.3.2.min.js/script
#+STYLE: script type=text/javascript
#+STYLE:  !--/*--![CDATA[/*!--*/
#+STYLE: $(document).ready(



___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-14 Thread Carsten Dominik


On May 14, 2009, at 2:19 PM, Ian Barton wrote:

I have been wondering if it would somehow be possible to get the # 
+STYLE option to allow for an include file in addition to directly  
typing stuff in. The maintainability of multi line STYLE options  
would then be much easier.


Ian.


And this is, how you need to do it, if you have the sitemap included:
= ---8-8- 
8---
#+STYLE: script type=text/javascript src=jquery-1.3.2.min.js/ 
script

#+STYLE: script type=text/javascript
#+STYLE:  !--/*--![CDATA[/*!--*/
#+STYLE: $(document).ready(


I believe you should be able to use link here.

- Carsten



___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-14 Thread Sebastian Rose



#+SETUPFILE: filename


??

Ian Barton li...@manor-farm.org writes:
 I have been wondering if it would somehow be possible to get the #+STYLE 
 option
 to allow for an include file in addition to directly typing stuff in. The
 maintainability of multi line STYLE options would then be much easier.

 Ian.

 And this is, how you need to do it, if you have the sitemap included:


 = ---8-8-8---
 #+STYLE: script type=text/javascript src=jquery-1.3.2.min.js/script
 #+STYLE: script type=text/javascript
 #+STYLE:  !--/*--![CDATA[/*!--*/
 #+STYLE: $(document).ready(


 ___
 Emacs-orgmode mailing list
 Remember: use `Reply All' to send replies to the list.
 Emacs-orgmode@gnu.org
 http://lists.gnu.org/mailman/listinfo/emacs-orgmode



___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-13 Thread Sebastian Rose
 = ---8-8-8---
 #+STYLE: script type=text/javascript src=jquery-1.3.2.min.js/script
 #+STYLE: script type=text/javascript
 #+STYLE:  !--/*--![CDATA[/*!--*/
 #+STYLE: $(document).ready(
 #+STYLE:   function(){
 #+STYLE:   $(#text-1 ul).eq(0).find(li).each(
 #+STYLE: function(){if($(this).children().eq(0)){
 #+STYLE:   $(this).css({cursor: pointer});
 #+STYLE:   $(this).bind(
 #+STYLE: click,
 #+STYLE: function(){
 #+STYLE:   if($(this).children().eq(0).is(:visible)) 
 $(this).children().eq(0).slideUp(250);
 #+STYLE:   else $(this).children().eq(0).slideDown(250);
 #+STYLE:   return false;});}});


Add this line here:

#+STYLE:   $(#text-1 ul).eq(0).find(a).bind(click, 
function(){document.location.href=$(this).attr('href');return false;});


 #+STYLE:   $(#text-1 ul).eq(0).find(ul).hide();
 #+STYLE: });
 #+STYLE: /*]]*///--
 #+STYLE: /script


 * Sitemap
 #+INCLUDE sitemap.org

 = ---8-8-8---





Unfortunately, it's tricky to get jQuery to work in Opera together with
org-info.js (org-info.js works, jQuery doesn't :) ).
Even in Firefox, if you place the jQuery stuff below the org-info.js
stuff, it stops working.

We should realy create a jQuery version of org-info.js...



   Sebastian


___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-13 Thread Carsten Dominik

That is pretty cool, thanks.

- Carsten

On May 12, 2009, at 5:51 PM, Sebastian Rose wrote:




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 carsten.domi...@gmail.com 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 li...@manor-farm.org 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.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode




___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Some Javascript Adventures

2009-05-12 Thread Ian Barton
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.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-12 Thread Sebastian Rose

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();
});




Ian Barton li...@manor-farm.org 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.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-12 Thread Carsten Dominik


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 li...@manor-farm.org 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.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode




___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-12 Thread Sebastian Rose
And this is, how you need to do it, if you have the sitemap included:


= ---8-8-8---
#+STYLE: script type=text/javascript src=jquery-1.3.2.min.js/script
#+STYLE: script type=text/javascript
#+STYLE:  !--/*--![CDATA[/*!--*/
#+STYLE: $(document).ready(
#+STYLE:   function(){
#+STYLE:   $(#text-1 ul).eq(0).find(li).each(
#+STYLE: function(){if($(this).children().eq(0)){
#+STYLE:   $(this).css({cursor: pointer});
#+STYLE:   $(this).bind(
#+STYLE: click,
#+STYLE: function(){
#+STYLE:   if($(this).children().eq(0).is(:visible)) 
$(this).children().eq(0).slideUp(250);
#+STYLE:   else $(this).children().eq(0).slideDown(250);
#+STYLE:   return false;});}});
#+STYLE:   $(#text-1 ul).eq(0).find(ul).hide();
#+STYLE: });
#+STYLE: /*]]*///--
#+STYLE: /script


* Sitemap
#+INCLUDE sitemap.org

= ---8-8-8---




Ian Barton li...@manor-farm.org 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.
 Emacs-orgmode@gnu.org
 http://lists.gnu.org/mailman/listinfo/emacs-orgmode



___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Some Javascript Adventures

2009-05-12 Thread Sebastian Rose


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 carsten.domi...@gmail.com 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 li...@manor-farm.org 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.
 Emacs-orgmode@gnu.org
 http://lists.gnu.org/mailman/listinfo/emacs-orgmode


___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode