Jquery ChangeEvent 全局变量
Posted
技术标签:
【中文标题】Jquery ChangeEvent 全局变量【英文标题】:Jquery ChangeEvent global variable 【发布时间】:2013-03-24 22:52:16 【问题描述】:我有这个代码。
var anyChange = false;
function init()
$('.saveSettingsEvent').bind("change",function()
anyChange = true ;
);
...
onload='init()
事件被触发,但变量 (anyChange) 保持为 'true' ,仅在匿名函数内部。
我用:
jQuery 1.8.2
JqueryMobile 1.2
我哪里错了? 谢谢!
【问题讨论】:
如何检查变量没有从外部改变? 对你下一个问题的一点建议,你应该提供更多的信息和代码然后这个。你在哪里检查的?你是怎么检查的?if(anyChange != false ) // Do Somthing
或if(anyChange == true) // Do Somthing
请移植您的表单标记。
【参考方案1】:
我为你写了一个例子。
var anyChange = false;
$(function()
$('.saveSettingsEvent').bind('change',function()
anyChange = true ;
);
$('button').click(function()
alert(anyChange);
);
);
http://jsfiddle.net/YuUVd/2/
它按预期工作。 anyChange 设置为 true 并保持为 true。
所以,如果您需要更多帮助,我们需要更多信息。
我假设,其他一些代码将您的变量设置回 false 或者您的更改事件永远不会触发...
【讨论】:
我在表单中使用了这段代码。所有输入、选择和复选框都有这个类(“saveSettingsEvent”)。我试图更改“anyChange”的名称......但仍然无法正常工作。然后我尝试了您的代码,但仍然无法正常工作。我看到的唯一解决方案是使用自定义“attr”或“tag”插入 DOM 树 请记住,当更改事件被触发时,有时您还需要单击或键入。在输入上,当您离开时会触发更改事件...【参考方案2】:真正的解决方案
(待定)
解决方法
我在正文末尾使用自定义属性制作了一个自定义标签。
当事件触发时,将属性res
设置为True$(function()
$('.saveSettingsEvent').bind('change',function()
$("#anychange").attr('res','true');
);
);
如果
var resToSave = $("#anychange").attr('res');
if(resToSave == 'true')
// Do Something
...
// Reset attr
$("#anychange").attr('res','false');
【讨论】:
以上是关于Jquery ChangeEvent 全局变量的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Ajax Post - 无法使用回调函数设置全局变量?
JQuery 插件,Javascript - 如何仅为 JQuery 插件全局变量或 json 对象创建并在函数级别更改此(变量、对象)