Почему мой код не работает со второй кнопкой мыши в C #?

Ответ: Итак, это техника, с которой мне очень нравится. Не требует слишком много , чтобы определить идентификатор компонента. Помните, что все это означает, что вы можете знать id компонента из любой точки вашей страницы, а не только из самого реального компонента. Это ключ. Я нажимаю кнопку, запускаю функцию javascript, и она должна иметь доступ к любому другому компоненту, а не к той, которая его запускала.

Это решение не требует «щелчка правой кнопкой мыши» и видит, что идентификатор. Этот тип решения является хрупким, поскольку идентификатор динамически генерируется, и если я меняю страницу, мне придется каждый раз проходить через эту бессмыслицу.

  1. Привязывает компонент к бэкэнду.
  2. Ссылка на связанный компонент везде, где вы хотите.

Итак, вот пример того, как это можно сделать.

Предположения: У меня есть * .xhtml (может быть * .jsp), и я определил бэк-файл. Я также использую JSF 2.0.

*. Xhtml page

<script>
  function myFunc() {
    var inputText = document.getElementById("#{backBean.emailAddyInputText.clientId}")                 
    alert("The email address is: " + inputText.value );
  }
</script>

<h:inputText binding="#{backBean.emailAddyInputText}"/>
<h:commandButton onclick="myFunc()" action="results" value="Next"/>

BackBean.java

UIInput emailAddyInputText;

Обязательно создайте свой приемник / сеттер для этого свойства.

1
задан marc_s 18 March 2019 в 16:56
поделиться

2 ответа

Вы не можете нажать на то, что не активно. Поэтому вам нужно создать пустую метку на том же месте или сделать пустым значение .text вместо отключения объекта.

Ответ на комментарий:

Это то, что вы хотите. Я очень быстро пересоздал ваш код с правкой, предложенной @La pieuvre:

public UnityEngine.UI.Text text;
string oldTextValue = "";
bool isHide = true;
void Update()
{
    Debug.Log( "Start" );
    if( Input.GetMouseButtonDown( 1 ) )
    {
        Debug.Log( "Pressed Mouse button" );
        if( isHide == true )
        {
            Debug.Log( "Disabling Text" );
            oldTextValue = text.text;
            text.text = "";
            isHide = false;
        }
        else if ( isHide == false ) // Else it wil always just enable the button when u press your mouse.
        {
            Debug.Log( "Enabling Text" );
            text.text = oldTextValue;
            isHide = true;
        }
    }
}
0
ответ дан Livo 18 March 2019 в 16:56
поделиться

Кроме того, в дополнение к тому, что сказал @livo, ваше состояние не очень чистое. Вам лучше написать:

if (Input.GetMouseButtonDown (1)){ 
    if(isHiden){
      // your code
   }else{
      // your code
   }
}
0
ответ дан La pieuvre 18 March 2019 в 16:56
поделиться
Другие вопросы по тегам:

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