Skip to main content
Inspiring
January 31, 2012
Answered

execute js function on clicking tab?

  • January 31, 2012
  • 2 replies
  • 5581 views

i have a js function that works fine when attached to the onClick event of a button, but i want it to execute when user clicks the tab

is there a way to do that?

function clearURL() {

var testURL = document.URL;

var urlQry = testURL.split("?")[1];

if (urlQry != "")

    {

    var activeTab = ColdFusion.Layout.getTabLayout('myLayout').getActiveTab().title;

    if (activeTab == 'myTabTitle')

        {

        var newURL = testURL.split("?")[0];

        window.location = newURL;

        }

    }

}

thanks

This topic has been closed for replies.
Correct answer ion

Thanks again AnotherPGriff, you pointed me in the right direction. My working code is:

ColdFusion.Layout.onTabActivate = function(tab){

  myTabs = ColdFusion.Layout.getTabLayout("myLayout");

  actTab = myTabs.getActiveTab();

  if(actTab.id === "myRedirect") {

  ColdFusion.navigate("redirectFile.cfm");

  }

}

where actTab.id is actually the name attribute of my cflayoutarea

Regards

2 replies

Legend
June 22, 2012

Maybe this will help: http://api.jquery.com/keypress/

ionAuthorCorrect answer
Inspiring
June 12, 2014

Thanks again AnotherPGriff, you pointed me in the right direction. My working code is:

ColdFusion.Layout.onTabActivate = function(tab){

  myTabs = ColdFusion.Layout.getTabLayout("myLayout");

  actTab = myTabs.getActiveTab();

  if(actTab.id === "myRedirect") {

  ColdFusion.navigate("redirectFile.cfm");

  }

}

where actTab.id is actually the name attribute of my cflayoutarea

Regards

BKBK
Community Expert
Community Expert
January 31, 2012

<div onclick="clearURL()">

<cflayout>

</cflayout>

</div>

ionAuthor
Inspiring
January 31, 2012

thanks BKBK, but is not really working. is not the whole layout that needs to be affected, only one layoutarea.

when i do this, it throws the layout out of wack, and when clicked, it does nothing (no error either)

regards

BKBK
Community Expert
Community Expert
February 1, 2012

ion wrote:

thanks BKBK, but is not really working. is not the whole layout that needs to be affected, only one layoutarea.

when i do this, it throws the layout out of wack, and when clicked, it does nothing (no error either)

I understand. You could place the DIV within the layoutarea, as in this example:

<script type="text/javascript">

f = function () {

    alert('Karamba!')

}

</script>

<cflayout type="tab" name="tabLayout">

    <cflayoutarea name="tab1" title="Tab 1">

       Tab 1 contents

    </cflayoutarea>

     <cflayoutarea name="tab2" title="Tab 2">

           <div  onclick="f()" >

       Tab 2 contents

    </div>

    </cflayoutarea>     

</cflayout>