2014-09-30 2 views
-2

У меня очень простой код JQuery, и он никогда не показывает второе предупреждение. Кто-нибудь знает, что не так?Функция изменения JQuery никогда не вызывалась

 <script type="text/javascript"> 
      $(document).ready(function() { 
       alert("1"); 
       $(".images_clicable input").change(function(){ 
         alert("2"); 
       }); 
      }); 
      $(".images_clicable input").change(function(){ 
       alert("2"); 
      }); 
     </script> 
     <div> 
      <div class="images_clicable addPhoto">      
       <label for="label_image1"> 
        <img class="img_preview" id="image1" src="./img/plus.png" height="100px"> 
       </label> 
       <input name="image1" id="label_image1" type="file">      
      </div> 
     </div> 

Этот код находится в угле.

+0

Я добавил его также внутри и снаружи. –

+2

Что это связано с AngularJS? – Darren

+0

Этот код внутреннего вида, который изменяется угловым. Я не угловатый гуру и не знаю, имеет ли это значение. –

ответ

0

Причина, по которой у вас возникли проблемы в том, что вы не делать вещи в AngularJS пути, но вы делает их таким образом, JQuery. То, что вы пытаетесь выполнить в Angular, вероятно, должно быть выполнено с использованием directives. Внутри директивы вы можете получить доступ к интерфейсу jqLite для jQuery, который будет охватывать 90% всего, что вы могли бы захотеть сделать с jQuery.

Вот пример директивы:

app.directive('alertOnChange', function() { 
    return function(scope, element, attrs) { 
    element.on('change', function() { 
     alert("It works!"); 
    }); 
    }; 
}); 

Вот измененное <input> тег:

<input alert-on-change name="image1" id="label_image1" type="file"> 

Here является plunker.

+0

Я уже написал код на Javascript, но до сих пор не понимаю, почему itt не работает Угловое это тоже JS, не так ли? Так почему нельзя назвать JS-код? от углового? plnkr.co/edit/46keW5QzHNnSJBTrjhXi –

+0

Ниже приведен пример загрузки файлов: https://egghead.io/lessons/angularjs-file-uploads. Кроме того, это может помочь, если вы еще этого не видели: http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background ? LQ = 1 – Bobby

0

Этот код работает для меня, и я не знаком с угловым переписанием угловым способом.

function readURL(input) { 
    if (input.files && input.files[0]) { 
     var reader = new FileReader(); 
     //check the name of input 

     var input_name = $(input).attr('name'); 
     reader.onload = function (e) { 
      $('#'+input_name).attr('src', e.target.result); 
      $('#label_'+input_name).attr('value', e.target.result); 
     } 
     reader.readAsDataURL(input.files[0]); 
    } 
} 

    $(".images_clicable input").change(function(){ 
     readURL(this); 
    }); 
Смежные вопросы