2016-06-18 25 views
1

我有一个项目列表,我想要做的事情,只要其中一个项目被选中,但问题是,复选框的更改功能没有与我一起工作。复选框jQuery的更改功能不工作,没有错误

我检查了函数内部的代码,它在改变事件之外工作正常。我不确定它不工作的原因,但除了它自己的功能外,还有什么可能呢?

这里的变化功能:

$("input[name='checkCoResult']").change(function() { 
    if (this.checked) { 
     $("#searchResultSecond").attr("style", "opacity: 0.6"); 
     $("#searchResultSecond *").attr("disabled", "disabled").off('click'); 
    } 

}); 

,这是产生我的名单代码:

$.ajax({ 
     url: "CCDMSWebService.asmx/getCoSearchResult", 
     data: JSON.stringify(objectData), 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (response) { 
      var Result = response.d; 
       contantDiv.text(""); 
     $.each(Result, function (index, val) { 
      contantDiv.append('<div class="panel-bod"><label style="margin:2px; border-radius: 10px;border: 1px solid #cc0000;padding: 5px;"><input type="checkbox" value="' + val.companyID + '" name="checkCoResult" class="nnn"> ' 
     +'<img src="images/' + val.companyID + '.png" alt="company logo" width="30%" height="30%">' + val.companyName + ' provides all your needs</label></div>'); 
      }) 
     }, 
     failure: function (msg) { 
     alert(msg); 
     } 
    }); 

回答

-1

,如果你的内容是动态的,然后尝试

$(document).on("change","input[name='checkCoResult']",function(){ 
    // your code 
}); 
+0

非常感谢。但为什么这个工作,而jQuery不是?我只是想了解,以避免类似的问题。 – Nysa

+0

绑定到文档应该只是最后的手段。更好地使用时间事件中存在的最接近的父代绑定:http://stackoverflow.com/a/12824698/1767412 – billynoah

1

你必须添加选择器参数,否则事件直接绑定而不是委托,这只有在元素已读时才起作用y存在(所以它不适用于动态加载的内容)。你的情况,似乎你已经有一个在你的页面命名contantDiv目前DIV,所以修改像

contantDiv.on("change","input[name='checkCoResult']",function(){ ... 

退房http://api.jquery.com/on/#direct-and-delegated-events有关详细信息,你的代码。

-1

如果将新的HTML注入页面,最好使用委托事件来附加事件处理程序。

委托事件的优点是它们可以处理后来添加到文档中的后代元素的事件。

$(staticAncestors).on(eventName, dynamicChild, function() {}); 
+0

为什么选择投票?有人没有得到委派的活动吗? ;) – Tushar

相关问题