Возможно ли использовать условие If с объектом JQUERY?

#javascript #jquery

#javascript #jquery

Вопрос:

Вот мой код jquery->

    <script type="text/javascript">
    $(document).ready(function(){
    var countPos=0;
    var add_button=$('#add_position');
    var wrapper=$('#position_fields');
    window.console amp;amp; console.log('Document ready called');
    $(add_button).click(function(event){
        // http://api.jquery.com/event.preventdefault/
        event.preventDefault();
        if ( countPos >=9 ) {
            alert("Maximum of nine position entries exceeded");
            return;
        }
        countPos  ;
        window.console amp;amp; console.log("Adding position " countPos);
        $(wrapper).append(
            '<div id="position' countPos '"> 
        <p>Year: <input type="text" name="year' countPos '" value="" /> 
        <input type="button" value="-" 
            onclick="$('#position' countPos '').remove();return false;"></p> 
        <textarea  name="desc' countPos '" rows="8" cols="80"></textarea>
        </div>');
       });
      });




</script>
  

В приведенном выше коде я хочу добавить оператор if перед $(add_button).click(функция(событие)[Когда пользователь нажмет на кнопку добавить, эта функция события будет работать]. Теперь я хочу добавить ‘else’, если это условие пойдет не так. Возможно ли это сделать?

Я пробовал таким образом->

  //here I add a If statement with this object
 if($(add_button).click(function(event))){
    // http://api.jquery.com/event.preventdefault/
    event.preventDefault();
    if ( countPos >=9 ) {
        alert("Maximum of nine position entries exceeded");
        return;
    }
    countPos  ;
    window.console amp;amp; console.log("Adding position " countPos);
    $(wrapper).append(
        '<div id="position' countPos '"> 
    <p>Year: <input type="text" name="year' countPos '" value="" /> 
    <input type="button" value="-" 
        onclick="$('#position' countPos '').remove();return false;"></p> 
    <textarea  name="desc' countPos '" rows="8" cols="80"></textarea>
    </div>');
   });
   else{
          '<div id="position' countPos '"> 
    <p>Year: <input type="text" name="year' countPos '" value="" /> 
    <input type="button" value="-" 
        onclick="$('#position' countPos '').remove();return false;"></p> 
    <textarea  name="desc' countPos '" rows="8" cols="80"></textarea>
    </div>'

        }
  

Но этот код не работает. Как я могу перейти к месту назначения?

Комментарии:

1. Можете ли вы объяснить, что вы пытаетесь сделать, поместив .click() обработчик внутрь if ? «Если пользователь нажимает иначе, сделайте что-нибудь еще» не имеет особого смысла в приложении, управляемом событиями. Вы упомянули «если это условие пойдет не так» — каково условие? Вы хотите проверить, существует ли add_button ?

2. Нет, сэр, я не хочу проверять, есть ли add_button или нет. Я хочу проверить, нажмет ли пользователь на кнопку добавить, тогда функция сгенерирует два динамических поля ввода. Если пользователь не нажимает на кнопку добавить, я также хочу показать то же динамическое поле ввода, которое я объявил в .click().@freedomn-m

3. Итак, зачем нужен блок else?. Вы можете задать вопрос. Я хочу добавить некоторые дополнительные функции в блок else, сэр.

4. Проблема в том, когда должен выполняться код, предназначенный для «если пользователь не нажимает». Они не могут щелкнуть мгновенно, поэтому они могут нажать кнопку через минуту, через 10 минут. В какой момент вы хотите перейти «они не щелкнули, поэтому я покажу входные данные»?

5. Выглядит так: при загрузке отображаются некоторые входные данные, когда пользователь нажимает добавить другой ввод. Просто удалите if(..) оболочку (сохраните событие), else{ (и соответствующие } ему), и у вас будет то, что вы хотите.