将对象作为参数传递给jQuery对话框?

时间:2016-08-09 09:27:03

标签: jquery jquery-ui jquery-ui-dialog

SO answer描述了如何将数据传递到对话框。

但是如果我需要将对象传递给对话框并在不同的字段中显示其属性,它是如何完成的?

1 个答案:

答案 0 :(得分:1)

一个javascript对象?然后,您还可以使用.data('dataName')传递一个,并使用$(this).data('dataName').myPropertyName在对话框中获取一个属性。那么,这样的事可能呢?



var car = {type:"Fiat", model:"500", color:"white"};//An object

$('#click').click(function (e){
  e.preventDefault();
  $("#dialog-confirm").data('aCar', car).dialog('open');
});

$("#dialog-confirm").dialog({
  autoOpen: false,
  title:'My dialog',
  open:function(){
    $('.myCar').append($(this).data('aCar').type);
    $('.myModel').append($(this).data('aCar').model);
    $('.myColor').append($(this).data('aCar').color);
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<a:href="#3" id="click">click</a>
<div id="dialog-confirm">
  <p class="myCar">My car is a:</p>
  <p class="myModel">Model:</p>
  <p class="myColor">Color:</p>
</div>
&#13;
&#13;
&#13;