2016-08-17 3 views
0

У меня есть список текстовых полей, в которых пользователь может удалить письмо, но когда в текстовое поле выпадает неправильная буква Я хочу, чтобы addClass("danger") Я хочу добавитьClass только в неправильном текстовом поле письма Я также добавил скриншот, чтобы проиллюстрировать проблему.

demo

Текстовое поле имеет класс с именем box назначен.

Теперь моя функция падения приведена ниже.

function dropabc(event) { 

    if ($(objBox).attr("correct1") != event.target.id) { 

     $(".imageError").fadeIn('slow').delay(1000).hide(0); 
     console.log("error"); 
     $(this).addClass('danger'); 

    } else { 

     console.log(event.target.id); 
     console.log("ok"); 
    } 
} 

$(this).addClass("danger") 

Однако, это не работает, я только хочу, чтобы добавить danger класс к коробке, на которой упал неправильное значение.

//makes all the textbox red 
$(".box").addClass("danger") 

Любая помощь будет очень признательна!

Это сопротивление JQuery UI и Droppable функция, которая работает отлично:

 var objBox; 
    $('.drag').draggable({ 

revert: true, 
     helper: 'clone', 
     cursor: 'pointer', 

     start: function(event, ui) { 

      $(this).fadeTo('fast', 0.5); 
       objBox=$(this); 
     }, 
     stop: function(event, ui) { 
      $(this).fadeTo(0, 1); 
    } 
}); 

$("#textbox, .box").droppable({ 
    hoverClass: "hoverPath", 
    drop: function(event, ui) { 

       var $this = $(this); 
         if ($this.val() == '') { 
          $this.val(ui.draggable.text()); 
          $(this).addClass("checkDiv"); 
          $(this).each(function(i, el){ 
         $(el).addClass(myid[3]); 
             }); 

         } 

     var empty = $(this).parent().find("input").filter(function() { 
      return this.value === ""; 
     }); 
     if(empty.length) { 
     console.log(empty.length); 
     } 
     else{ 
      console.log("done"); 
     } 

        } 
}); 

Это PHP код, который эхо количества текстового поля:

for($x = 0 ; $x < count($code_words); $x++){ 

    echo "<input id='".$code_words[$x]."' ondrop='dropabc(event)' class='box' type='textbox'/>"; 

     } 
+0

Так, например, если я бросаю букву «т» на текстовом поле ниже, но это не должно быть там, текстовое поле на который я уронил, должен быть добавлен класс «опасность»? – Evochrome

+0

да точно я хочу это сделать –

+0

У вас есть пример, который мы можем редактировать? Как JSFiddle или Codepen? – Evochrome

ответ

1

Вы просто работаете функция, когда вы вставляете событие ondrop внутри вашего тега ввода.

Поэтому вместо того, чтобы встраивать его, попробуйте использовать jQuery on("drop").

$(document).on("drop", ".box", function(event){ 
     if ($(objBox).attr("correct1") != event.target.id) { 

     $(".imageError").fadeIn('slow').delay(1000).hide(0); 
     console.log("error"); 
     $(this).addClass('danger'); 

    } else { 

     console.log(event.target.id); 
     console.log("ok"); 
    } 
}) 

Great это помогло вам :)

Приветствия,

Смежные вопросы