jquery通过class获取a标签里面的值,附给button,并且关闭弹出框,怎么写呀
<html><head><title>省市公司页面</title><scripttype="text/javascript">functionproListJSON(di...
<html><head><title>省市公司页面</title><script type="text/javascript"> function proListJSON(divid) { //省动态刷新 $.ajax({ type : 'POST', url : '${pageContext.request.contextPath}/proController/proListJSON', dataType : 'json', success : function(result) { $.each(result, function() { $("#proList").append("<li>" + "<a class='aclick' href='javascript:;' >" + this.proName + "</a>" + "</li>"); }); }, error : function() { } }); } function orgListJSON(proName) { //省市公司动态刷新 $.ajax({ type : 'POST', url : '${pageContext.request.contextPath}/orgController/orgJSON?proName='+proName, dataType : 'json', success : function(result) { return result.orgName; }, error : function() { } }); } //弹出框加载触发器 $(document).ready(function() { new PopupLayer({trigger:"#ele8",popupBlk:"#blk8", onBeforeStart:function(){ proListJSON(proList); } }); }); //给botton赋值 $(document).ready(function() { $(".aclick").click(function(){ var proName = $(this).html(); var orgName = orgListJSON(proName); $("#ele8").val(orgName); $("#emample8").hide(); }); });</script></head>
<body>
这样写获取不到点击事件,赋值也不成功,另外问下点击完要隐藏弹出框,怎么弄? 展开
<body>
这样写获取不到点击事件,赋值也不成功,另外问下点击完要隐藏弹出框,怎么弄? 展开
3个回答
展开全部
// 你好
// 由于你的 <li> 是动态生成的,你在使用 $.ajax 的时候也没有指定 同步加载
// 所以可能是先执行了下面的 $(".aclick") 绑定事件了
// 在 <a> 还没有生成的时候,就对齐进行绑定,因此是无效的
// 而且你的 <li> 是根据选择结果动态生成的,建议把你的绑定事件写到
// $("#proList").append("<li>"); 之后
// 去掉最后一个 $(document).ready 给 button 赋值的代码
// 改动你的 success:function(){} 如下
$.each(result, function() {
var proName = this.proName;
// 这里循环定义 li 标签
var li = $("<li><a class='aclick' href='javascript:void(0);'>"+proName +"<a></li>");
// 然后再对该标签进行 click 绑定
li.click(function(){
$("#ele8").val(proName);
$("#emample8").hide();
})
// 这里 append 一个已经带有 click 事件的 li 就OK了
$("#proList").append(li);
});
// 由于你的 <li> 是动态生成的,你在使用 $.ajax 的时候也没有指定 同步加载
// 所以可能是先执行了下面的 $(".aclick") 绑定事件了
// 在 <a> 还没有生成的时候,就对齐进行绑定,因此是无效的
// 而且你的 <li> 是根据选择结果动态生成的,建议把你的绑定事件写到
// $("#proList").append("<li>"); 之后
// 去掉最后一个 $(document).ready 给 button 赋值的代码
// 改动你的 success:function(){} 如下
$.each(result, function() {
var proName = this.proName;
// 这里循环定义 li 标签
var li = $("<li><a class='aclick' href='javascript:void(0);'>"+proName +"<a></li>");
// 然后再对该标签进行 click 绑定
li.click(function(){
$("#ele8").val(proName);
$("#emample8").hide();
})
// 这里 append 一个已经带有 click 事件的 li 就OK了
$("#proList").append(li);
});
更多追问追答
追问
刚试了下,还是监听不到点击呀
追答
你的HTML页面引用了Jquery.js了吗?如果有的话,要看看是否有监听事件的触发,你可以修改
li.click(function(){
alert("我被触发了");
})
如果可以alert出来,则是赋值语句的问题
展开全部
你ready时json获取到了A标签,然后再写到页面中时,再用ready绑定click操作,这样js是获取不到你append进去的A标签的,因为,ready就表示是你加载页面的时候获取到页面元素,而你又动态写入了A元素,那么你写之前,已经加载完成,所以找不到A标签。
所以你的$(".aclick").click事件不能用ready,我觉得你写到button上,或者将js写到页面的最后(不能用ready)
所以你的$(".aclick").click事件不能用ready,我觉得你写到button上,或者将js写到页面的最后(不能用ready)
追问
可以给个具体的代码吗?不写ready的话 ,用什么?我是小白,急用,拜托了
追答
你这代码我这里不好运行啊。。你自己试试,就是写到: $("#proList").append("" + "" + this.proName + "",这个里边写个click事件,然后你把你的click处理放到这个函数里边
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//动态追加的元素,事件绑定用bind或者live
$(".aclick").live('click',function(e){
.....
})
追问
可以把我需要改动的地方,具体写下代码吗?我是小白。
我的需求是点击“省份”,进数据库查询出来,对应的公司。然后赋值在输入框(我这里用的是button),然后隐藏弹出框。
追答
代码你不是都写好了么?直接把你的$(".aclick").click() 换成
$(".aclick").live('click',function(e){
.....
})
不就行了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询