这是Jquery按钮事件的代码,它检查每个tr和每个td,如果它发生了变化,它会更进一步并将一些属性值返回到隐藏控件中,
function SetUpdateOnchange()
{
$('.sd-flex-grid tbody tr').each(function(intChangedRowNo) {
//alert('test row');
$(this).children('td').find(':input,textarea').change(function() {
// alert('test');
var strKeyField = '';
var strKeyValue = '';
var strKeyType = '';
strActField ='';
strActValue ='';
strActType ='';
var strUpdateRows = new String($('#sd-hidden-updaterowsno').val());
var re = new RegExp(intChangedRowNo + "~+");
if (strUpdateRows.match(re) == null) {
$('#sd-hidden-updaterowsno').val($('#sd-hidden-updaterowsno').val() + intChangedRowNo + "~");
var rowCount = 0;
$('.sd-flex-grid tbody tr').each(function() {
if (rowCount == intChangedRowNo) {
$(this).children('td').each(function(i) {
if ($(this).attr('primarykey') == 'primarykey') {
if ($(this).attr('fieldname') != "") {
strKeyField = strKeyField + $(this).attr('fieldname') + "|";
if ($(this).attr('datatype') == "") {
if (typeof $(this).attr('format') != 'undefined') {
strKeyValue = strKeyValue + RemoveComma($(this).attr('val')) + "|";
}
else {
strKeyValue = strKeyValue + $(this).attr('val') + "|";
}
}
else {
if (typeof $(this).attr('format') != 'undefined') {
strKeyValue = strKeyValue + RemoveComma($(this).text()) + "|";
}
else {
strKeyValue = strKeyValue + $(this).text() + "|";
}
}
strKeyType = strKeyType + $(this).attr('actualtype') + "|";
}
}
else if ($(this).attr('primarykey') == '') {
$(this).change(function() {
if ($(this).attr('fieldname') != "") {
strActField = strActField + $(this).attr('fieldname') + "|";
if ($(this).attr('datatype') == "") {
if (typeof $(this).attr('format') != 'undefined') {
strActValue = strActValue + RemoveComma($(this).attr('val')) + "|";
}
else {
strActValue = strActValue + $(this).attr('val') + "|";
}
}
else {
$(this).find(" :input").each(function() {
// We are checking the format attribute is available..
if (typeof $(this).attr('format') != 'undefined') {
strActValue = strActValue + RemoveComma($(this).text()) + "|";
}
else {
strActValue = strActValue + $(this).val() + "|";
}
});
}
strActType = strActType + $(this).attr('actualtype') + "|";
}
//$('#sd-hidden-updaterowscolkey').val($('#sd-hidden-updaterowscolkey').val() + strKeyField + "~");
// $('#sd-hidden-updateacttype').val($('#sd-hidden-updateacttype').val() + strActType + "~");
// $('#sd-hidden-updateactdata').val($('#sd-hidden-updateactdata').val() + strActValue + "~");
// $('#sd-hidden-updateactfield').val($('#sd-hidden-updateactfield').val() + strActField + "~");
});
}
});
}
rowCount = rowCount + 1;
});
rowCount = null;
$('#sd-hidden-updaterowscoltype').val($('#sd-hidden-updaterowscoltype').val() + strKeyType + "~");
$('#sd-hidden-updaterowscoldata').val($('#sd-hidden-updaterowscoldata').val() + strKeyValue + "~");
$('#sd-hidden-updaterowscolkey').val($('#sd-hidden-updaterowscolkey').val() + strKeyField + "~");
$('#sd-hidden-updateacttype').val($('#sd-hidden-updateacttype').val() + strActType + "~");
$('#sd-hidden-updateactdata').val($('#sd-hidden-updateactdata').val() + strActValue + "~");
$('#sd-hidden-updateactfield').val($('#sd-hidden-updateactfield').val() + strActField + "~");
}
re = null;
});
});
}
strKeyValue 在函数内部被指定并在外部使用。这很好。 Simillarly,我想在函数之外访问strActvalue。它在函数中返回正确的值,但在外部使用时,它显示未定义。
如何在函数外部使用变量?
答案 0 :(得分:0)
在脚本文件的开头使用:
<script>
var globalVal;
然后在你的JQuery函数中使用:
globalVal=mylocalVal;
您无法在Jquery中声明值。 Jquery是Javascript库。你可以在JavaScript中声明。 Remeber JavaScript是脚本语言,因此逐行执行,因此在脚本的顶部声明您的值。
答案 1 :(得分:0)
您可以使用全局变量。全局变量是通过定义一个没有var关键字的变量来创建的,如下所示:
strActValue = ""
$('someButton').click(function(){
//EVery reference to strActValue in you function now reference the global variable, whose value will survive the function call.
示例:
someVar = 2;
$('someButton').click(function(){
someVar=someVar+1;
});
“someButton”被点击5次
alert(someVar);
这会提醒“7”