我来自ExtJS背景,正在慢慢学习jQuery。我试图从对话框的myVar
事件中访问我添加open
的选项/属性的值。
$("#add-family-dialog").dialog({
autoOpen: true,
height: 450,
width: 600,
resizable: false,
modal: true,
myVar: "hello world!",
open: function(event, ui) {
// TODO: get the myVar value
// this
alert($(this).myVar);
// or this
alert($(this).attr("myVar"));
// or this
alert(this.myVar);
}
});
如何获取myVar
的价值?这是正确的方法吗?还是有更好的方法来保存对象的变量?
答案 0 :(得分:4)
您可以通过'option'
方法访问它:
var myVar = $(this).dialog('option', 'myVar');
演示:http://jsfiddle.net/ambiguous/ww5Gm/
我不知道这是指定的还是偶然的行为,所以我不会依赖它。更自然的方法(IMO)是使用data
附加您的额外数据:
$('.dialog').data('myVar', 'hello world!').dialog({
// ...
open: function(event, ui) {
var myVar = $(this).data('myVar');
// ...
答案 1 :(得分:0)
您的变量“myVar”不是插件对话框(jquery ui)的选项的一部分,您不能将其他任意变量添加到对话框的构造函数中。
在我看来,更好的方法是让你的变量在对话框之外:
var myVar='hello world';
$( "#add-family-dialog" ).dialog({
autoOpen: true,
height: 450,
width: 600,
resizable : false,
modal: true,
open: function(event, ui) {
alert(myVar);
}
});
...或者获取页面中隐藏的html元素的值
<input type="hidden" id="myVar" value="hello world" />
...在javascript中
alert($('#myVar').val());
我希望这会有所帮助。