JavaScript, чтобы обнаружить, видим ли выпадающий из избранного элемента

Чтобы разбить это на 2-символьные куски, используйте регулярное выражение, например, так:

var str = '64656661756c74';
str = str.match(/.{1,2}/g);
console.log(str);

5
задан Mat 28 July 2012 в 05:40
поделиться

7 ответов

Отслеживайте состояние с помощью переменной JavaScript. Мы назовем это "openX".

onfocus = "openX=true" onblur = "openX=false" onchange = "openX=false"

0
ответ дан 14 December 2019 в 13:51
поделиться

Мой первый вопрос - почему Вы пытаетесь сделать это? Я не могу думать ни о каком приложении, которое показывает это поведение, и я не могу думать о серьезном основании для этой ситуации для случая.

Я не говорю, что у Вас нет серьезного основания, но я просто не знаю, каково это могло бы быть :).

0
ответ дан 14 December 2019 в 13:51
поделиться

Я не думаю, что существует прямая поддержка. Вы могли также сидеть на onblur выбора - это называют, когда выбор теряет фокус.

В зависимости от того, насколько важный это, Вы могли попытаться реализовать свое собственное управление или начать с одного как выпадающее управление меню, которое подобно. Обычно, если это не очень важно для Вашего приложения, не стоит делать это. Если Вы решаете пойти этим путем, вот обсуждение кого-то пытающегося сделать это с помощью додзе в качестве основания:

http://dojotoolkit.org/forum/dijit-dijit-0-9/dijit-support/emulating-html-select

0
ответ дан 14 December 2019 в 13:51
поделиться

В jQuery, чтобы протестировать, если что-то видимо:

$('something').css('display')

Это возвратит что-то как 'блок', 'встроенный', или 'ни один' (если элемент не будет отображен). Это - просто представление атрибута 'дисплея' CSS.

0
ответ дан 14 December 2019 в 13:51
поделиться

Этот элементарный пример демонстрирует, как сделать это с 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>
0
ответ дан 14 December 2019 в 13:51
поделиться

Условное содержание, о котором вы спрашиваете, не так уж и сложно. В следующем примере я буду использовать 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();
});
2
ответ дан 14 December 2019 в 13:51
поделиться

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>
4
ответ дан 14 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: