jquery对话框标题未定义使用全局变量

时间:2011-07-28 11:29:25

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

我在代码中设置了var然后使其成为全局变量,但由于某种原因,对话框将其显示为“未定义”。你不能拥有var的头衔吗?感谢

在.click事件中

box = $('#EB_custref').val();

功能之外

var box;

在对话框选项中

title: 'Edit box' + ' ' + box,

2 个答案:

答案 0 :(得分:2)

实例化对话框时会运行title: 'Edit box' + ' ' + box行:我假设您在$(document).ready上执行此操作。此时,您的box变量未定义。

当您在box事件上设置click时为时已晚 - 标题已设置。

有关详细信息,请参阅this post


修改

以下是一个解决方案的演示:

<强> HTML

<button data-title="Apple">OPEN 1</button>
<button data-title="Banana">OPEN 2</button>

<div id="MyDialog">
    Example Dialog Content
</div>

<强> JQUERY

var globalTitle = ''; // Your global variable

// Startup operations
$(function () {

    $('#MyDialog').hide();
    $('button').click(function () { 
                          openMyDialog($(this).data('title')) 
                      });
});

// Open the dialog using the global myTitle variable
function openMyDialog(customTitle)
{
    globalTitle = customTitle;
    $('#MyDialog').dialog({title : globalTitle});
}

请注意使用HTML5风格的data-属性,这些属性可以通过.data()函数在jQuery中访问。另请注意,我使用了一个全局变量来向您显示可以使用一个变量。但是没有必要 - 最好的方法是将customTitle直接传递到dialog()来电,即$('#MyDialog').dialog({title : customTitle});

答案 1 :(得分:0)

alert($('#EB_custref').val())

检查其返回值是否

如果可能的话,发布更多代码/