日期:2014-05-18  浏览次数:20447 次

jquery创建html元素,并且绑定事件。事件没有触发,大家帮我看看错在哪里?
jquery创建html元素,并且绑定事件。事件没有触发,大家帮我看看错在哪里?
JScript code

        //创建html元素
        var img = $("<img>").attr("class", "headImg").attr("src", "http://..");
        var hidden = $("<input>").attr("type", "hidden").attr("class", "userID").val(5);
        var li = $("<li>").append(img).append(hidden);
        //给img绑定click事件
        $(img).live("click", function() {
            var friendID = $(this).siblings("input:hidden.userID").val();
            alert(friendID);
        });
以上代码生成的html如下所示
HTML code
<li>
    <img class="headImg" src="http://..">
    <input type="hidden" class="userID" value="5">
</li>


------解决方案--------------------
加<>做什么,去掉就可以啦
  
//创建html元素
var img = $("img").attr("class", "headImg").attr("src", "http://..");
var hidden = $("input").attr("type", "hidden").attr("class", "userID").val(5);
var li = $("li").append(img).append(hidden);
//给img绑定click事件
$(img).live("click", function() {
var friendID = $(this).siblings("input:hidden.userID").val();
alert(friendID);
});
------解决方案--------------------
探讨

to taomanman:
我这里是动态创建img input和li,然后把img和input放到li里面,最后再把这个li插入到页面上。
img input和li一开始是没有的。

------解决方案--------------------
这样试试看

C# code

//创建html元素
var img = $("<img>").attr("class", "headImg").attr("src", "http://..");
var hidden = $("<input>").attr("type", "hidden").attr("class", "userID").val(5);
var li = $("<li>").append(img).append(hidden);

$(".headImg").live('click', function() {
    var friendID = $(this).siblings("input").attr("value");
    alert(friendID);
});