开发者社区> 问答> 正文

通过jquery 修改的dom 无法使用jquery的方法

<body>    
    <span class="title" id='color_but'>    
    点击此处为标题添加颜色    
    </span>    
</body>  
<script type='text/javascript'>  
    $('#color_but').click(function(){  
        $(this).replaceWith("<input  id='ok' type='button'value='确定'/>")  
    });  
    
    $('#ok').click(function(){  
        alert('ddd');      
    });      
</script>

通过jquery修改后的button是无法触发的,这是为什么 如果是使用onClick绑定的事件就可以触发,应该是一个基础的问题,一直以为可以这么用的~~

展开
收起
杨冬芳 2016-06-14 17:35:08 1867 0
1 条回答
写回答
取消 提交回答
  • IT从业

    你对#ok的绑定操作在js执行到这行时就进行了,但得你生成这个#ok要到你点击#color_but之后才出现。
    结果就是你在执行绑定#ok的时候,这个#ok还根本没出现。

    就你的代码而言,我不知道你的具体应用场景。你绑定部分可以试试代理delegate或者使用 jq 推荐的 on
    以下几种都可以

    $('body').delegate( '#ok', 'click', function() {
        alert('ddd')
    })
    
    $('body').on('click', '#ok', function() {
        alert('ddd')
    })
    

    总之是需要在已存在的上层进行绑定。

    2019-07-17 19:38:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Javascript中的函数 立即下载
Javascript中的对象 立即下载
JavaScript函数 立即下载