jq代码:
$(function () {
$("li").click(function () {
alert("a");
});
});
$(function () {
$("#con").hide();
$("#txt").keyup(function () {
var title = $("#txt").val();
if (title != "") {
var para1 = "{Title:'" + title + "'}"; //如果传多个参数,形式如:= "{AskId:'" + askid + "',Text:'" + text + "'}";
$.ajax({
type: "POST",
contentType: "application/json;utf-8",
url: "WebService1.asmx/GetTitles",
data: para1,
dataType: "json",
success: function (result1) {
result1 = result1.d; //返回d后面的json内容
$("#con").html(result1.Infor);
$("#con").show();
}
});
}
});
});
效果:
为什么$(function () {
$("li").click(function () {
alert("a");
});
});不执行???
可能还没加载出来li元素,代码就已经执行完了
$(function () {
$("li").click(function () {
alert("a");
});
});
click绑定不支持动态添加元素,试下$(document).on('click','li',function(){ alert('a'); })
你的页面加载好了就开始绑定li的click事件,然后这是你的li还没有通过ajax执行得到,所以你后来加进来的li是没有绑定click事件的
你的li是动态生成的元素,一开始注册的事件是没有注册到新创建的li对象上的。
你可以采用$(document).on('click','li',function(){});这种事件冒泡的方式来实现,或者采用delegate。
都说完了 上面的 我说个另外的方法 $("li").click(function () {
alert("a");
}); 可以写在回调函数返回成功里面 但是这个时候又有一个问题了 如果你点击多长会绑定多次click
这个时候用die() 或者在绑定后 unbind;
要用$.on('click',...)
因为$("li").click(function () {
alert("a");
});
});做函数绑定的时候,还没有创建con中的li项目