使用ajax动态添加dom元素onclick上调用javascript函数

时间:2013-09-25 12:46:18

标签: javascript html ajax

嗨,我很久以前就遇到过这个问题,我浪费了很多时间来弄清楚出了什么问题。 让我讲一下这个场景。假设我有一个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>

1 个答案:

答案 0 :(得分:0)

解决这个问题的方法是。我们需要在外部添加onclick,而不是在添加元素时指定它。

以上示例的解决方案: 在Ajax中调用只需添加按钮元素。

$.ajax(){

    success(obj):{ 
          $("#dynamicElement").empty().append('<input id="iButton" type="button">');
      $("#iButton").onClick({
          function2(obj);
         });
        }
   }

现在它完美无缺。