NEWVFP
NEWVFP
2011-12-31 18:04

动态增加的标签事件不执行。

[code="java"]
$(document).ready(function() {

  $(".cmdModif").click(function(){


     lcVal=$(this).parent().parent().children(".amount").children(".textCell").html();

     //得到input元素的name属性值

     lcName=$(this).parent().parent().children(".amount").children("input").attr("name");

    // alert(lcName);

    //拼接文本框元素

     lcInput="<input type='text'  class='textCell' value="+lcVal+" name='"+lcName+"'/>"

    // alert(lcInput);

    //把“数量”单元格替换 成文本框

     $(this).parent().parent().children(".amount").html(lcInput);
     lcHtmlSave="<a class='cmdSave' href='#'>保存</a>"

     $(this).parent().html(lcHtmlSave));

    }

  )

   // "保存"链接 click事件
     $(".cmdSave").click(function(){
     alert("save click");
   }
  )

});

[/code]

如上,我通过jQuery动态新增了一个标签: lcHtmlSave="保存"
这个标签是新增成功的,可是为什么通jquery不能执行这个标签的click事件代码呢?
// "保存"链接 click事件
$(".cmdSave").click(function(){
alert("save click");
}
)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • housen1987 housen1987 9年前

    jQuery是很强大的,即使实现没有这个元素,一样可以后来注册事件,建议查一下live绑定事件的API,修改的例子如下:

    [code="java"]
    $(document).ready(function() {
    $(".cmdModif").click(function(){
    $(this).parent().append("保存");
    })
    // "保存"链接 click事件
    $(".cmdSave").live('click',function(){
    alert('save click')
    });
    });
    [/code]

    .cmdSave对象开始不存在,但是使用live事件追加注册一下,就可以有事件了。

    点赞 评论 复制链接分享
  • dkawskawx dkawskawx 9年前

    lcHtmlSave="保存" 是新增的,$(".cmdSave")获取的是初始化完成时页面中的元素。新增元素时,重新邦定下事件即可。


    lcHtmlSave="保存"

    $(this).parent().html(lcHtmlSave));
    改为:
    var $add = $("保存");
    $(this).parent().empty().append($add);
    $add.bind("click",function(){
    alert("save click");
    });

    点赞 评论 复制链接分享
  • u011606457 _1_1_7_ 9年前

    直接用onclick

    [code="html"]lcHtmlSave="保存"

    [/code]

    再写一个save方法

    点赞 评论 复制链接分享
  • iteye_16709 iteye_16709 9年前

    后续动态增加的元素都不能绑定? 请问那应如何做呢?

    答:后续动态增加的时候你需要在增加时注册监听器。增加后如果没有注册时不行的。

    点赞 评论 复制链接分享
  • iteye_171 iteye_171 10年前

    什么时候生成.cmdSave,什么时候给他绑定,就可以了。。你再想想

    点赞 评论 复制链接分享
  • iteye_171 iteye_171 10年前

    我是觉得,浏览器解析到
    [code="java"]$(".cmdSave").click(function(){

    alert("save click");

    }

    ) [/code]
    你的.cmSave还不存在,所以他无法帮你绑定了。

    点赞 评论 复制链接分享

相关推荐