0

こんにちは、私はずっと前にこの問題に直面し、何が問題なのかを理解するために多くの時間を無駄にしました。シナリオを教えてください。既にページにある要素がほとんどなく、ajax 呼び出しを使用して動的に追加する要素がいくつかあるという点で、html ページがあるとします。ページに新しいアイテムを追加する際に、要素の 1 つに onClick 関数呼び出しをオブジェクトとともにパラメーターとして追加する必要があるようなシナリオが得られました。しかし、それをjqueryに追加すると、関数が呼び出されますが、関数で取得するオブジェクトは、渡すオブジェクトと同じではありません。オブジェクトは、オブジェクトではなく文字列に変換されます。

<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>
4

1 に答える 1

0

この問題の解決策は、. 要素自体を追加するときに onclick を指定するのではなく、外部でも onclick を追加する必要があります。

上記の例の解決策: Ajax 呼び出しでは、ボタン要素を追加するだけです。

$.ajax(){

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

今では完全に機能します。

于 2013-09-25T12:46:17.717 に答える