jQWidgets Forums
jQuery UI Widgets › Forums › Navigation › Tabs › Tab behavior question
This topic contains 3 replies, has 2 voices, and was last updated by Dimitar 12 years, 2 months ago.
-
AuthorTab behavior question Posts
-
I am wokring with the tabs, but can’t quite get the behavior I want.
Maybe I am missing something, but I would like to be able to use the toggleMode: to show a tabs contents when the mouse is over the tab, but I want it to go back to the currently selected tab on mouseout.
Thanks,
CraigHello Craig,
There is no such built-in functionality. However, here is a workaround:
<!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../../scripts/gettheme.js"></script> <script type="text/javascript" src="../../scripts/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxtabs.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcheckbox.js"></script> <script type="text/javascript"> $(document).ready(function () { var theme = getDemoTheme(); // Create jqxTabs. $('#jqxTabs').jqxTabs({ width: '90%', height: 200, position: 'top', theme: theme }); $('#settings div').css('margin-top', '10px'); $('#animation').jqxCheckBox({ theme: theme }); $('#contentAnimation').jqxCheckBox({ theme: theme }); $('#animation').on('change', function (event) { var checked = event.args.checked; $('#jqxTabs').jqxTabs({ selectionTracker: checked }); }); $('#contentAnimation').on('change', function (event) { var checked = event.args.checked; if (checked) { $('#jqxTabs').jqxTabs({ animationType: 'fade' }); } else { $('#jqxTabs').jqxTabs({ animationType: 'none' }); } }); var oldSelection = 0; var tabTitles = $("#jqxTabs .jqx-tabs-title"); tabTitles.mouseenter(function (event) { var target = event.target; for (var i = 0; i < tabTitles.length; i++) { if (tabTitles[i].innerText == target.innerText) { $("#jqxTabs").jqxTabs('select', i); break; }; }; }); tabTitles.mouseleave(function (event) { $("#jqxTabs").jqxTabs('select', oldSelection); }); $('#jqxTabs').on('tabclick', function (event) { var clickedItem = event.args.item; oldSelection = clickedItem; }); }); </script></head><body class='default'> <div id='jqxWidget'> <div id='jqxTabs'> <ul> <li style="margin-left: 30px;">Node.js</li> <li>JavaServer Pages</li> <li>Active Server Pages</li> <li>Python</li> <li>Perl</li> </ul> <div> Node.js is an event-driven I/O server-side JavaScript environment based on V8. It is intended for writing scalable network programs such as web servers. It was created by Ryan Dahl in 2009, and its growth is sponsored by Joyent, which employs Dahl. Similar environments written in other programming languages include Twisted for Python, Perl Object Environment for Perl, libevent for C and EventMachine for Ruby. Unlike most JavaScript, it is not executed in a web browser, but is instead a form of server-side JavaScript. Node.js implements some CommonJS specifications. Node.js includes a REPL environment for interactive testing. </div> <div> JavaServer Pages (JSP) is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types. Released in 1999 as Sun's answer to ASP and PHP,[citation needed] JSP was designed to address the perception that the Java programming environment didn't provide developers with enough support for the Web. To deploy and run, a compatible web server with servlet container is required. The Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems and the JCP (Java Community Process) must both be met by the container. </div> <div> ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ASP.NET components to process SOAP messages. </div> <div> Python is a general-purpose, high-level programming language[5] whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax",[7] and its standard library is large and comprehensive. Its use of indentation for block delimiters is unique among popular programming languages. Python supports multiple programming paradigms, primarily but not limited to object-oriented, imperative and, to a lesser extent, functional programming styles. It features a fully dynamic type system and automatic memory management, similar to that of Scheme, Ruby, Perl, and Tcl. Like other dynamic languages, Python is often used as a scripting language, but is also used in a wide range of non-scripting contexts. </div> <div> Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to oversee development of the core language, and its upcoming version, Perl 6. Perl borrows features from other programming languages including C, shell scripting (sh), AWK, and sed.[5] The language provides powerful text processing facilities without the arbitrary data length limits of many contemporary Unix tools, facilitating easy manipulation of text files. </div> </div> <div id='settings'> <div id='animation'> Enable Select Animation</div> <div id='contentAnimation'> Enable Content Animation</div> </div> </div></body></html>
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/Hello Dimitar,
That is close to what I wanted and I was able to tweak it to get the full behavior that I needed in IE 9 and Chrome. I am using v2.8.0.
Several issues that I found though.
1. I am getting an error unless I comment out the reference to jqxgrid.pager.js. It looks like it is not need for tabs anyway.
2. If I check either box (Enable Select Animation or Enable Content Animation), it no longer works until I refresh the page. This does not affect my needs, more for your information.
3. There is an issue for my needs. It does not work in Firefox as I get the same behavior as when I check one of the enable boxes (only puts a border around the tab text).
Thanks,
CraigHi Craig,
We are sorry, the solution we provided is not supported by Firefox. To be able to run it on all browsers, you should change the line:
if (tabTitles[i].innerText == target.innerText) {
to:
if ($(tabTitles[i]).text() == $(target).text()) {
As for the other issues, we will also check them out.
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/ -
AuthorPosts
You must be logged in to reply to this topic.