Чтобы разбить это на 2-символьные куски, используйте регулярное выражение, например, так:
var str = '64656661756c74';
str = str.match(/.{1,2}/g);
console.log(str);
Отслеживайте состояние с помощью переменной JavaScript. Мы назовем это "openX".
onfocus = "openX=true" onblur = "openX=false" onchange = "openX=false"
Мой первый вопрос - почему Вы пытаетесь сделать это? Я не могу думать ни о каком приложении, которое показывает это поведение, и я не могу думать о серьезном основании для этой ситуации для случая.
Я не говорю, что у Вас нет серьезного основания, но я просто не знаю, каково это могло бы быть :).
Я не думаю, что существует прямая поддержка. Вы могли также сидеть на onblur выбора - это называют, когда выбор теряет фокус.
В зависимости от того, насколько важный это, Вы могли попытаться реализовать свое собственное управление или начать с одного как выпадающее управление меню, которое подобно. Обычно, если это не очень важно для Вашего приложения, не стоит делать это. Если Вы решаете пойти этим путем, вот обсуждение кого-то пытающегося сделать это с помощью додзе в качестве основания:
http://dojotoolkit.org/forum/dijit-dijit-0-9/dijit-support/emulating-html-select
В jQuery, чтобы протестировать, если что-то видимо:
$('something').css('display')
Это возвратит что-то как 'блок', 'встроенный', или 'ни один' (если элемент не будет отображен). Это - просто представление атрибута 'дисплея' CSS.
Этот элементарный пример демонстрирует, как сделать это с setInterval. Это проверяет один раз во второй на состояние дисплея Вашего избранного меню, и затем скрывает или показывает часть содержания. Это работает согласно описанию Вашей проблемы, и независимо от того, что скрывает избранное меню, это отобразит ту часть содержания соответственно. Другими словами, toggleDisplay () был установкой только для демонстрации этого.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title></title>
<script language="javascript" type="text/javascript">
var STECHZ = {
init : function() {
STECHZ.setDisplayedInterval();
},
setDisplayedInterval : function() {
STECHZ.isDisplayedInterval = window.setInterval(function(){
if ( document.getElementById( "mySelectMenu" ).style.display == "none" ) {
document.getElementById( "myObjectToShow" ).style.display = "block";
} else {
document.getElementById( "myObjectToShow" ).style.display = "none";
}
}, 1000);
},
isDisplayedInterval : null,
toggleDisplay : function() {
var mySelectMenu = document.getElementById( "mySelectMenu" );
if ( mySelectMenu.style.display == "none" ) {
mySelectMenu.style.display = "block";
} else {
mySelectMenu.style.display = "none";
}
}
};
window.onload = function(){
STECHZ.init();
}
</script>
</head>
<body>
<p>
<a href="#" onclick="STECHZ.toggleDisplay();return false;">Click to toggle display.</a>
</p>
<select id="mySelectMenu">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
<div id="myObjectToShow" style="display: none;">Only show when mySelectMenu is not showing.</div>
</body>
</html>
Условное содержание, о котором вы спрашиваете, не так уж и сложно. В следующем примере я буду использовать jQuery для достижения нашей цели:
<select id="theSelectId">
<option value="dogs">Dogs</option>
<option value="birds">Birds</option>
<option value="cats">Cats</option>
<option value="horses">Horses</option>
</select>
<div id="myDiv" style="width:300px;height:100px;background:#cc0000"></div>
Мы свяжем пару событий, чтобы показать / скрыть #myDiv на основе выбранного значения #theSelectId
$("#theSelectId").change(function(){
if ($(this).val() != "dogs")
$("#myDiv").fadeOut();
else
$("#myDiv").fadeIn();
});
here is how I would preferred to do it. focus and blur is where it is at.
<html>
<head>
<title>SandBox</title>
</head>
<body>
<select id="ddlBox">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
<div id="divMsg">some text or whatever goes here.</div>
</body>
</html>
<script type="text/javascript">
window.onload = function() {
var ddlBox = document.getElementById("ddlBox");
var divMsg = document.getElementById("divMsg");
if (ddlBox && divMsg) {
ddlBox.onfocus = function() {
divMsg.style.display = "none";
}
ddlBox.onblur = function() {
divMsg.style.display = "";
}
divMsg.style.display = "";
}
}
</script>