Javascript 如何将onclick变量放入对话框函数中
我有一个onclick事件,其中有一个值,我想发布到后端php脚本。只是不知道如何在对话框函数中获取它Javascript 如何将onclick变量放入对话框函数中,javascript,jquery,Javascript,Jquery,我有一个onclick事件,其中有一个值,我想发布到后端php脚本。只是不知道如何在对话框函数中获取它 function reorder(job_index)//<--------this fella { $('#dialog').dialog('open'); } $(document).ready(function(){ $(function() { $("#dialog").dialog({ bgiframe: true,
function reorder(job_index)//<--------this fella
{
$('#dialog').dialog('open');
}
$(document).ready(function(){
$(function() {
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 250,
width: 600,
modal: true,
buttons: {
'Yes, use the number above': function() {
var jobID=$("#jobnumber").val();
$.post("rpc.php", {
job_index:job_index,// <-------to here
jobID:jobID,
method: "reorder"
},
function(data,textstatus)
{
alert(data.message);
}, "json");
},
'No, create a new number for me': function() {
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
});
});
函数重新排序(作业索引)/您可以使用.data()
将其存储为元素上的数据。您可以使用将其存储为元素上的数据。data()
创建一个全局变量,将上次单击的作业索引存储在那里,然后在单击处理程序中从那里读取
var last_job_index;
function reorder(job_index)
{
last_job_index = job_index;
$('#dialog').dialog('open');
}
//snip
$.post("rpc.php", {
job_index: last_job_index,
jobID: jobID,
method: "reorder"
},
警告:这是一个非常不专业的解决方案(共享可变状态)创建一个全局变量,将上次单击的作业索引存储在那里,然后在单击处理程序中从那里读取
var last_job_index;
function reorder(job_index)
{
last_job_index = job_index;
$('#dialog').dialog('open');
}
//snip
$.post("rpc.php", {
job_index: last_job_index,
jobID: jobID,
method: "reorder"
},
警告:这是一个非常不专业的解决方案(共享可变状态)在下面的代码中,我使用的是一个函数,它允许您存储和检索索引
函数索引
通过返回声明并返回另一个函数来创建一个。这意味着,一旦(外部)函数返回,变量\u index
仍然可用(将其视为变量是在堆上而不是堆栈帧上分配的;即malloc ed),并且您可以看到,由于}(),函数是自调用的代码>位于函数的最后一行,因此在解析过程中立即返回
然后,当您再次调用函数index
时(现在基本上是调用包含一个形式参数的内部函数,ind
),您可以传入索引,如果传入,函数将把它存储在我前面提到的\u index
变量中…即在外部函数返回后仍然可用的变量
如果不传入参数(即像这样调用函数:index()
),该函数只返回存储的变量。这背后的逻辑是,如果没有传递参数,则实际参数的值是未定义的
。因此,该函数检查值是否为未定义的,如果是,则只返回变量
顺便说一句,在外部的ready
函数中有一个嵌套的ready
函数。这是因为$(function(){
与$(document).ready(function(){
)相同。我在下面的代码中修复了这个问题:
var index = function () {
var _index;
return function (ind) {
if (typeof ind !== "undefined") {
_index = ind;
}
return _index;
};
}();
function reorder(job_index)
{
index(job_index);
$('#dialog').dialog('open');
}
$(function () {
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 250,
width: 600,
modal: true,
buttons: {
'Yes, use the number above': function () {
var jobID = $("#jobnumber").val();
$.post("rpc.php", {
job_index: index(),
jobID: jobID,
method: "reorder"
},
function (data, textstatus) {
alert(data.message);
},
"json");
},
'No, create a new number for me': function () {
$(this).dialog('close');
},
Cancel: function () {
$(this).dialog('close');
}
}
});
});
另一种方法是使用前面提到的data
方法。这将允许您将索引直接存储为元素的一部分,如:
function reorder(job_index)
{
$('#dialog').data("job", job_index).dialog('open');
}
$(function () {
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 250,
width: 600,
modal: true,
buttons: {
'Yes, use the number above': function () {
var jobID = $("#jobnumber").val();
$.post("rpc.php", {
job_index: $("#dialog").data("job"),
jobID: jobID,
method: "reorder"
},
function (data, textstatus) {
alert(data.message);
},
"json");
},
'No, create a new number for me': function () {
$(this).dialog('close');
},
Cancel: function () {
$(this).dialog('close');
}
}
});
});
在下面的代码中,我使用了一个函数,它允许您存储和检索索引
函数index
通过返回声明并返回另一个函数来创建。这意味着变量\u index
在(外部)调用后仍然可用(将其视为在堆上而不是堆栈帧上分配了变量;即malloc ed)函数已返回,正如您所看到的,由于函数最后一行的}();
,函数是自调用的,因此在解析过程中会立即返回
然后,当您再次调用函数index
时(现在您将基本上调用接受一个形式参数的内部函数,ind
),您可以传入索引,如果传入,函数将把它存储在我前面提到的\u index
变量中…即在外部函数返回后仍然可用的变量
如果不传入参数(即像这样调用函数:index()
),函数只返回存储的变量。其逻辑是,如果未传递参数,则实际参数的值为未定义
。因此,函数检查值是否为未定义
,如果为,则只返回变量
顺便说一句,在外部的ready
函数中有一个嵌套的ready
函数。这是因为$(function(){
与$(document)相同。ready(function(){
)函数。我在下面的代码中修复了这个问题:
var index = function () {
var _index;
return function (ind) {
if (typeof ind !== "undefined") {
_index = ind;
}
return _index;
};
}();
function reorder(job_index)
{
index(job_index);
$('#dialog').dialog('open');
}
$(function () {
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 250,
width: 600,
modal: true,
buttons: {
'Yes, use the number above': function () {
var jobID = $("#jobnumber").val();
$.post("rpc.php", {
job_index: index(),
jobID: jobID,
method: "reorder"
},
function (data, textstatus) {
alert(data.message);
},
"json");
},
'No, create a new number for me': function () {
$(this).dialog('close');
},
Cancel: function () {
$(this).dialog('close');
}
}
});
});
另一种方法是使用前面提到的data
方法。这将允许您将索引直接存储为元素的一部分,如:
function reorder(job_index)
{
$('#dialog').data("job", job_index).dialog('open');
}
$(function () {
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 250,
width: 600,
modal: true,
buttons: {
'Yes, use the number above': function () {
var jobID = $("#jobnumber").val();
$.post("rpc.php", {
job_index: $("#dialog").data("job"),
jobID: jobID,
method: "reorder"
},
function (data, textstatus) {
alert(data.message);
},
"json");
},
'No, create a new number for me': function () {
$(this).dialog('close');
},
Cancel: function () {
$(this).dialog('close');
}
}
});
});
提示:在外部ready
函数中有一个嵌套的read
y函数。这是因为$(function(){
与$(document)相同。ready(function(){/code>提示:在外部ready
函数中有一个嵌套的read
y函数。这是因为$(function()){
与$(文档).ready(函数(){