I have a jQuery code:
$('a[name=dialog]').click(function(e) {
var param = $(this).attr("name");
var param = replaceAll(param,"'","\"");
var data = JSON.parse(param);
$("dialogTitle").text(data.caption);
$("dialogBody").text(data.bodyText);
/* here I'm trying to assign event to button*/
$("#OkButton").click(window[data.myFunc]);
});
});
in html code:
<ul>
<li><a href="#dialogConfirmation" name="{'caption':'MyCaption', 'bodyText':'BODY TEXT!!!', 'myFunc':'foo'}">link</a></li>
</ul>
<script>
function foo(){
alert('test');
};
My question is how to pass function as parameter via JSON? Is it possible? Does somebody know any other solution? Especial attention on passing function with parameters as parameter.
Thank you!
As JohnP said, using the data API seems more appropriate. You need to define the function name and params in separate ways, possibly using different data keys.
A stripped down example using the data API:
HTML:
JS/jQuery:
Fiddle: http://jsfiddle.net/jzRPa/