jquery对象的html()产生的代码放入jsp中 再用js调用就无效了
jsp的代码:<pvalue="<s:propertyvalue="moduleName"/>"><inputtype="checkbox"name="moduleNam...
jsp的代码:
<p value="<s:property value="moduleName" />"><input type="checkbox" name="moduleName" value="<s:property value="moduleName" />" />
<s:property value="moduleName" /></p>
js代码:
$(document).ready(function(){
//点击模块名全选与全部取消
$("[name='moduleName']").click(function() {
var moduleName = $(this).val();
if(moduleName===''){
alert("请选择模块名");
return;
}
if($(this).attr('checked')){
$("[id="+moduleName+"]").attr('checked',true);
}else{
$("[id="+moduleName+"]").attr('checked',false);
}
});
// 模块名变灰begin
$("[name='checkbox']").click(function() {
var count = 0;
var countChecked = 0;
var moduleName = $(this).attr("id");
$("[id="+moduleName+"]").each(function(){
count+=1;
});
$("[id="+moduleName+"][checked]").each(function(){
countChecked+=1;
});
if(count>countChecked){
//添加css
//alert($("[value="+moduleName+"]").attr("value"));
//$("#"+moduleName+"").html("W3School");
$("[value="+moduleName+"]").html("<div class=\"checkbot\"><input style=\"visibility:hidden\" type=\"checkbox\" value=\""+moduleName+"\" name=\"moduleName\"/>"+moduleName+"</div>");
}
if(countChecked==0){
$("[value="+moduleName+"]").html("<input type=\"checkbox\" value=\""+moduleName+"\" name=\"moduleName\"/>"+moduleName);
}
if(count==countChecked){
$("[value="+moduleName+"]").html("<input type=\"checkbox\" value=\""+moduleName+"\" name=\"moduleName\"/>"+moduleName);
$("[value="+moduleName+"]").attr('checked',true);
}
});
// 模块名变灰end
});
刚进入页面 直接调用js的$("[name='moduleName']").click(function()方法可以进去,但是调用过$("[name='checkbox']").click(function() 之后 在去调用上面那个 方法就无法进去了 展开
<p value="<s:property value="moduleName" />"><input type="checkbox" name="moduleName" value="<s:property value="moduleName" />" />
<s:property value="moduleName" /></p>
js代码:
$(document).ready(function(){
//点击模块名全选与全部取消
$("[name='moduleName']").click(function() {
var moduleName = $(this).val();
if(moduleName===''){
alert("请选择模块名");
return;
}
if($(this).attr('checked')){
$("[id="+moduleName+"]").attr('checked',true);
}else{
$("[id="+moduleName+"]").attr('checked',false);
}
});
// 模块名变灰begin
$("[name='checkbox']").click(function() {
var count = 0;
var countChecked = 0;
var moduleName = $(this).attr("id");
$("[id="+moduleName+"]").each(function(){
count+=1;
});
$("[id="+moduleName+"][checked]").each(function(){
countChecked+=1;
});
if(count>countChecked){
//添加css
//alert($("[value="+moduleName+"]").attr("value"));
//$("#"+moduleName+"").html("W3School");
$("[value="+moduleName+"]").html("<div class=\"checkbot\"><input style=\"visibility:hidden\" type=\"checkbox\" value=\""+moduleName+"\" name=\"moduleName\"/>"+moduleName+"</div>");
}
if(countChecked==0){
$("[value="+moduleName+"]").html("<input type=\"checkbox\" value=\""+moduleName+"\" name=\"moduleName\"/>"+moduleName);
}
if(count==countChecked){
$("[value="+moduleName+"]").html("<input type=\"checkbox\" value=\""+moduleName+"\" name=\"moduleName\"/>"+moduleName);
$("[value="+moduleName+"]").attr('checked',true);
}
});
// 模块名变灰end
});
刚进入页面 直接调用js的$("[name='moduleName']").click(function()方法可以进去,但是调用过$("[name='checkbox']").click(function() 之后 在去调用上面那个 方法就无法进去了 展开
2个回答
展开全部
js动态生成的dom元素事件得用live改动如下
$("[name='moduleName']").live("click",function(){
var moduleName = $(this).val();
if(moduleName===''){
alert("请选择模块名");
return;
});
$("[name='moduleName']").live("click",function(){
var moduleName = $(this).val();
if(moduleName===''){
alert("请选择模块名");
return;
});
更多追问追答
追问
错误: $("[name='moduleName']").live is not a function
$("[name='moduleName']")这个对象是checkbox的对象 难道不支持live方法?
追答
用的jQuery版本是多少?应该是1.3以后才支持,1.4以后是肯定支持的。
展开全部
首先看看IE浏览器有没有报JS错误。
如果没有,看看你的JSP页面生成的html代码是否正确的。
如果没有,看看你的JSP页面生成的html代码是否正确的。
更多追问追答
追问
没有。。我对照了$("[value="+moduleName+"]").html(""+moduleName);
所生成的html代码 跟原来是一样的,但是问题就出在这一句。。。
追答
$("value="+moduleName+") 这样写试试呢。
或者$("#value="+moduleName+")
或者$(".value="+moduleName+")
以上三种你都试试, 很可能是这里错误了。。。
还有, 你仔细看一下,你生成的html页面,通过 $("value="+moduleName+") 获取的DOM元素在页面中是否存在
参考资料: http://www.mspring.org
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询