【问题标题】:Use append for dynamically form, call javascript function from tag div使用 append 动态表单,从标签 div 调用 javascript 函数
【发布时间】:2017-02-07 15:07:20
【问题描述】:

你可以从另一个 javascript 函数调用 javascript 函数吗?

当我从 Tag Html 调用此 javascript chzn 时,它可以正常工作。

但如果我从另一个函数 javascript 调用,那就不行了。 `

<script>
$(document).ready(function () {

    $('.chzn').chosen( { width: '100%' }); //method chzn that I want call

    var max_fields      = 5;
    var wrapper         = $(".container1");
    var add_button      = $(".add_form_field");
    var div = "<div><select class='chzn' name='nama_obat[]'><?php foreach($listobat ->result() as $row):?><option><?php echo $row->nama_obat ?></option><?php endforeach;?></select><a class='col-lg-3' href='#' id='delete'>Delete</a></div>";
    var x = 1;

    $(add_button).click(function(e){
        e.preventDefault();
        if(x < max_fields){
            x++;
            $(wrapper).append(div); //add input box
        }
        else
        {
          alert('You Reached the limits')
      }
  });

    $(wrapper).on("click","#delete", function(e){
        e.preventDefault(); $(this).parent('div').remove(); x--;
    })

});
</script>

`

感谢您的帮助

【问题讨论】:

  • gridViewAndroid = new View(mContext); 这会创建一个对象,下一行立即将其丢弃。
  • 您需要了解视图回收的工作原理。

标签: javascript jquery html append


【解决方案1】:

如果convertView 不为空(它已被回收),则您没有设置任何值,您只是返回了具有相同图像的相同视图。 GridView 是回收视图。如果将高度设置为 100,则所有 7 个视图都被夸大了。如果您将 hight 设置为 200,则只有 6 个被充气,当您向下滚动时,前两个被回收,您必须为它们设置与其新位置相对应的值。

public View getView(int position, View convertView, ViewGroup viewGroup) {

    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View gridViewAndroid;

    if (convertView == null) {
       gridViewAndroid = new View(mContext);
       gridViewAndroid = inflater.inflate(R.layout.grid_layout, null);
    } else {
       gridViewAndroid = (View) convertView;
    }

    TextView textViewAndroid = (TextView) gridViewAndroid.findViewById(R.id.gridview_text);
    ImageView imageViewAndroid = (ImageView) gridViewAndroid.findViewById(R.id.gridview_image);

    textViewAndroid.setText(mTopic.get(position));
    imageViewAndroid.setImageBitmap(mImage.get(position));

    return gridViewAndroid;
}

【讨论】:

  • 请解释一下。
  • 如果convertView 不为空(它已被回收),则您没有设置任何值,您只是返回了具有相同图像的相同视图。 GridView 是回收视图。如果将高度设置为 100,则所有 7 个视图都被夸大了。如果将 hight 设置为 200,则只有 6 个被充气,当您向下滚动时,前两个被回收,您必须将它们设置为对应于它们的 no 位置的值。
  • @user1779222 ohhhhhhhhh,我明白了。谢谢大家。
  • @Code-Apprentice 简单但疯狂。对不起,我是新手
猜你喜欢
  • 2019-02-18
  • 1970-01-01
  • 2011-07-20
  • 2023-03-07
  • 2012-12-10
  • 2018-02-27
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
相关资源
最近更新 更多