从未调用过JQuery更改函数

时间:2014-09-30 20:43:59

标签: jquery angularjs

我有非常简单的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>

此代码位于角度视图内。

2 个答案:

答案 0 :(得分:0)

您遇到问题的原因是您不是以AngularJS方式做事,但是在jQuery中执行这些操作办法。您可能需要使用directives来完成您在Angular中尝试完成的任务。在一个指令中,你可以访问jQuery的jqLit​​e接口,它将包含你想用jQuery做的任何事情的90%。

这是一个示例指令:

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是一名掠夺者。

答案 1 :(得分: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);
    });