Jaseer Jaseer - 4 years ago 685
HTML Question

Count of Open tabs- Jquery

Can you please help me to find out how many tabs already open in a div as I have to limit the open tabs to 2. If the open tabs count is 2 and trying to add one more tab then need to alert ('maximum allowed tabs exceed, close one tab first')?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="jquery,ui,easy,easyui,web">
<meta name="description" content="easyui help you build your web page easily!">
<title>jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
<script>
function addTab(title, url){


if ($('#tt').tabs('exists', title)){
$('#tt').tabs('select', title);
} else {
var content = '<iframe scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:100%;"></iframe>';
$('#tt').tabs('add',{
title:title,
content:content,
closable:true
});
}
}
</script>
</head>
<body>
<div style="margin-bottom:10px">
<a href="#" class="easyui-linkbutton" onclick="addTab('google','http://www.google.com')">google</a>
<a href="#" class="easyui-linkbutton" onclick="addTab('jquery','http://jquery.com/')">jquery</a>
<a href="#" class="easyui-linkbutton" onclick="addTab('easyui','http://yahoo.com')">easyui</a>
</div>
<div id="tt" class="easyui-tabs" style="width:400px;height:250px;">
<div title="Home">
</div>
</div>
</body>
</html>

Answer Source

It's unclear if the home tab counts as one of the 2 allowed tabs but this will do what you need just change (count > 2) as needed.

$('[data-title]').click(function() {
  var $this = $(this);
  var title = $this.data('title');
  var url = $this.data('url');
  var count = $('#tt .panel').length;
  var $container = $('#tt');
  if ($container.tabs('exists', title)) $container.tabs('select', title);
  else {
    if (count > 2) {
      alert('maximum allowed tabs exceed, close one tab first');
    } 
    else {
      var content = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
      $container.tabs('add', {
        title: title,
        content: content,
        closable: true
      });
    }
  }
});
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>

<div style="margin-bottom:10px">
  <a href="#" class="easyui-linkbutton" data-title="google" data-url="http://www.google.com">google</a>
  <a href="#" class="easyui-linkbutton" data-title="jquery" data-url="http://jquery.com/">jquery</a>
  <a href="#" class="easyui-linkbutton" data-title="easyui" data-url="http://yahoo.com">easyui</a>
</div>
<div id="tt" class="easyui-tabs" style="width:400px;height:250px;">
  <div title="Home">
  </div>
</div>

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download