嗨,我很久以前就遇到过这个问题,我浪费了很多时间来弄清楚出了什么问题。 让我讲一下这个场景。假设我有一个html页面,我有几个元素已经在页面中,我使用ajax调用动态添加更多。在向页面添加新项目时,我得到的场景就像我需要为其中一个元素添加onClick函数调用以及一个对象作为参数。 但是当我在jquery中添加该函数时,函数被调用,但是我在函数中获取的对象与我传入的对象不同。对象被转换为String而不是object。
<html>
<body>
.
.
.
... Some html code....
.
.
.
.
<div onclick="function1();"> </div>
.
.
<div id="dynamicElement"> </div>
.
.
</body>
<script type="text/javascript">
function function1(){
.
.
$.ajax(){
success(obj):{
$("#dynamicElement").empty().append('<input id="iButton" type="button" onclick="function2('+obj+')">')
}
}
}
</script>
<script type="text/javascript">
function2(obj){
//Here When I try to manipulate with this object. I was actually not abt to do.
// this is because of the object u add in dynamic elements will get converted to string instead of ibject.
}
</script>
</html>
答案 0 :(得分:0)
解决这个问题的方法是。我们需要在外部添加onclick,而不是在添加元素时指定它。
以上示例的解决方案: 在Ajax中调用只需添加按钮元素。
$.ajax(){
success(obj):{
$("#dynamicElement").empty().append('<input id="iButton" type="button">');
$("#iButton").onClick({
function2(obj);
});
}
}
现在它完美无缺。