js 拼接的html 在外部怎么加css? 急急急!

text: "<div style='color:#666;margin-bottom:20px;' id='msg'>请填写要提现的金额</div>"+
                        "<div>"+
                        "<div><input type='number' id='price' style='width:270px;display:block;margin:0 auto;color:#000'  placeholder='输入金额'></div>"+
                        "<input type='number' maxlength= '4' style='width:150px;display:inline-block;color:#000' id='code' placeholder='输入四位数'/>"+
                        "<div id='sendBtn' class='btn code' style='margin:10px;'>发送验证码</div>"+
                        "</div>"
                        
                        
  var setSendBtn = function(enable) {
        if(enable) {
            $('#sendBut').removeAttr('disabled');
        } else {
            $('#sendBut').attr('disabled', 'disabled');
        }
    };
    
    
    $('#sendBtn').click(){
        setSendBtn(false);
    }
    
    并没没有添加到#sendBtn 的css
    
    
    不好意思,怪自己太不仔细,没什么大问题了。都是小细节 哎……,感谢大家回答
阅读 5.6k
7 个回答

click事件必须放在text内容append到页面上之后,
否则 $('#sendBtn')是取不到元素的

如果使用jquery, js添加的dom要使用.live()/.bind()绑定事件才能添加样式

直接$('#sendBut').css试试当然你也有可能是没获取到元素

因为是字符串拼接的html,不是创建的dom对象。
所以 $('#sendBtn')这一步要在将html结构加到页面之后。
如果是用$('<标签>')创建的对象。直接绑定click事件就没有问题。

使用字符串拼接,动态创建的DOM节点,要使用.live()/.bind()绑定事件才能够绑定上,或者也可以使用事件委托,给父元素绑定事件。题主之前使用的click事件,只能给html结构中有的节点添加事件。希望能帮到你。

  • 你这样写的话 应该会有报错 为什么不贴图上来呢==

  • $('#sendBtn').click 在jQuery是可以这么用 但是只能在整个页面完全渲染出来以后才可以生效

  • 一般用 on bind也绑定监听事件

  • 所以 你试试 on的方式 动态得绑定事件一般用on

$(document).on('click', '.xxx', function() {
   // do something
});

不好用我把代码吃了

$('body').on('click', '#sendBtn', function(){
    console.info('过来看看控制台');
    setSendBtn(false);
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题