2012-02-22 22 views
0

私はおそらくこの誤ったことについて考えていますが...JSオブジェクトまたは参照をJSオブジェクトにHTMLマークアップの関数に渡すことはできますか?

JavaScriptマークアップ内のjavascript関数にjavascriptオブジェクト(またはその参照)を渡す方法はありますか?

<script type="text/javascript"> 
    var myObject = new Object(); 
    $('body').append('<div onclick=testThis(' + myObject + ')></div>'); 

    function testThis(object) 
    { 
     console.log(object); 
    } 
</script> 

マークアップは、私はそれを調べるときに、このような何かを探して終わる:たとえば

<div onclick="testThis([object Object])"> 

追加コンテキスト:

実際のユースケースは、検索ページでありますこれはAJAXを介してSOLRを照会し、結果をJSオブジェクトとして取得します。ユーザーがこれらの検索結果のHTMLマークアップをクリックすると、そのオブジェクト(またはその参照)を別のJS関数に渡して処理できるようにしたいと考えています。

私はこれを間違った方法で考えていますか?

答えて

1

いいえ、オブジェクトへの参照をマークアップに埋め込むことはできません。

代わりに、あなたはおそらく、セットアップあなたのクリックイベントはJavascript/jQueryのでリスニングしたいと思います:

var object = new Object(); 
$('<div/>').appendTo('body').click(function() { 
    testThis(object); 
}); 

function testThis(value) { 
    console.log(value); 
} 
+0

感謝。私はこれまで、JQueryが '$(document).ready()'に存在しなかった要素でクリックイベントをリスニングしていないという問題があったので、間違った方法を考えていました。 – eysikal

関連する問題