Показать сообщение отдельно
  #12 (permalink)  
Старый 16.11.2017, 19:57
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,802

Можно так попробовать:
<!DOCTYPE html>
<html>
<head>
	<title>Untitled</title>
	<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
	<script type="text/javascript">
		$(function(){
			$('input[name=sw]').click(function(){
			  var v =$(this).val();
			  $('#one,#two,#three').hide().filter('#'+v).show();
			  if(v!='three')
				return;
				
			  $(document).ready(function(){
				$("#three").load("3.html pre",function(){
					var css=['styles/shCore.css','shThemeDefault.css'],
						js=['shCore.js','shBrushCss.js','shBrushXml.js','shBrushJScript.js'],
						load_hundler=function(){
							if(++counter==total)
								SyntaxHighlighter.all();
						},
						total=css.length+js.length,
						counter=0;
					
					for(var i=0;i < css.length;i++){
						var node=document.createElement('link');
						node.rel='stylesheet';
						node.href='syntaxhighlighter/styles/'+css[i];
						node.onload=load_hundler;
						document.head.appendChild(node);
					};
					for(i=0;i < js.length;i++){
						var node=document.createElement('script');
						node.href='syntaxhighlighter/scripts/'+js[i];
						node.onload=load_hundler;
						document.head.appendChild(node);
					};
				});
			  });
			});
		});
	</script>
</head>
<body>
	<input type="radio" name="sw" value="one" id="x1"><label for="x1">1</label>
	<input type="radio" name="sw" value="two" id="x2"><label for="x2">2</label>
	<input type="radio" name="sw" value="three" id="x3"><label for="x3">3</label>
	<div id="one" class="none"></div>
	<div id="two" class="none"></div>
	<div id="three" class="none"></div>
</body>
</html>

В 3-х вещах не уверен:
1. jq.load может не разобрать кашу из html в файле 3.html;
2. jq.load по селектору может вернуть только inner html;
3. в функции load_hundler переменные counter и total могут отсутствовать.
Ответить с цитированием