将json对象传递给函数调用

时间:2017-12-13 00:20:51

标签: javascript jquery json

我想将json <Button HorizontalContentAlignment="Stretch" Grid.Row="0" Grid.Column="1" Margin="2" Height="{Binding Height, ElementName=Tb}" Click="Button1_Click"> <!----> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Image Source="/images/block_arrow_left.png" Grid.Column="0" Height="{Binding ActualHeight, ElementName=Tb}" VerticalAlignment="Center" HorizontalAlignment="Center"> </Image> <TextBlock x:Name="Tb" Padding="5" Grid.Column="1" FontSize="14" VerticalAlignment="Center" HorizontalAlignment="Stretch" Text="button1"/> <Image Source="/images/block_arrow_left.png" Grid.Column="2" Height="{Binding ActualHeight, ElementName=Tb}" VerticalAlignment="Center" HorizontalAlignment="Center"> </Image> </Grid> </Button> 传递给QustomDialogBuilder qustomDialogBuilder = new QustomDialogBuilder(context). setTitle("Set IP Address"). setTitleColor("#FF00FF"). setDividerColor("#FF00FF"). setMessage("You are now entering the 10th dimension."). qustomDialogBuilder.show(); 函数。该函数的调用是通过文本字符串的onclick事件,该文本字符串使用jquery打印在文档中。但他给我一个错误。

这是代码摘要:

item

启动功能时抛出错误

3 个答案:

答案 0 :(得分:1)

您不必在<div class="col-md-9"> <a href="<?php echo the_permalink(); ?>" <h2><?php echo the_title(); ?></h2> <a/> 中使用字符串连接。只需使用userListDetails('+item+')即可。 请尝试以下方法:

userListDetails(item)
var item = {first_name: "John", last_name: "Doe"}; //json object
var html = "<a onclick='userListDetails(item)' >Detalles</a>";

$('#panel').append(html);
function userListDetails(json){ 
  console.log(json);
}

答案 1 :(得分:0)

这不起作用,因为javascript会尝试将item转换为字符串,提供类似[Object object]的内容,并且您的html最终会以

结尾

<a onclick="userListDetails([Object object])">Detalles</a>

......哪个不行。你可以在这里采取两种方法:

1)创建item全局对象,然后按名称引用它:

window.item = { ... }; //some object in global scope
$('#panel').append("<a onclick="userListDetails(item)">Detalles</a>);

userListDetails类似,item位于全局范围内,因此您可以从HTML访问它。

2)在javascript而不是HTML中添加点击监听器

var item = { ... }; //some object
var $detailLink = $("<a>Detalles</a>");
$('#panel').append( $detailLink );

$detailLink.on("click", function() {
    userListDetails( item );
});
总的来说,我更喜欢第二种方式 - 它更灵活,不会使全球范围变得混乱。

答案 2 :(得分:0)

我通过生成ngIf的标识符解决了这个问题。然后在文档中插入,然后按标识符处理事件单击:

<a>