相关疑难解决方法(0)

在javascript中,如何在变量值改变时触发事件?

我有两个变量:

var trafficLightIsGreen = false; 
var someoneIsRunningTheLight = false;
Run Code Online (Sandbox Code Playgroud)

当两个变量符合我的条件时,我想触发一个事件:

if(trafficLightIsGreen && !someoneIsRunningTheLight){
    go(); 
}
Run Code Online (Sandbox Code Playgroud)

假设这两个布尔值在任何时刻都可以改变,那么go()当他们根据我的条件改变时如何触发我的方法呢?

javascript

24
推荐指数
1
解决办法
5万
查看次数

javascript事件监听器,用于更改对象变量

我有一个具有多个属性的对象变量.

MyVar = {"prop1" : 0, "prop2": 0....};
Run Code Online (Sandbox Code Playgroud)

如何编写侦听任何属性更改的事件侦听器.

谢谢你的建议.

javascript jquery

13
推荐指数
2
解决办法
3万
查看次数

Javascript当我们在Chrome中选择Stay on Page时,如何调用函数

请在Chrome浏览器中查看我的代码,如果点击刷新,系统会提示您选择2个选项.

  1. 离开这个页面和
  2. 保持此页上

当我点击2.停留在此页面按钮时,它必须激活我的自定义功能displayMsg()

谁能为我提供解决方案?

<script type="text/javascript">
function displayMsg() {
    alert('my text..');
}
</script>
<script type="text/javascript">
window.onbeforeunload = function(evt) {
  var message = 'Please Stay on this page and we will show you a secret text.';
  if (typeof evt == 'undefined') {
      evt = window.event;
  }       
  if (evt) {
      evt.returnValue = message;
      return message;
  }
  trace(evt);
} 
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

12
推荐指数
2
解决办法
1万
查看次数

如何将变更事件处理程序附加到变量?

可能重复:
侦听JavaScript或jQuery中的变量

如何跟踪此变量是否已更改?

var ConditionalFlag = 0;
Run Code Online (Sandbox Code Playgroud)

我试过这个:

var ConditionalFlag = 0;
$(ConditionalFlag).change(function () {
    alert("Changed");
});
ConditionalFlag++;
Run Code Online (Sandbox Code Playgroud)

但无济于事.我考虑使用25ms计时器来检查这样的变化:

var ConditionalFlag = 0;
function CheckFlag() {
    if (ConditionalFlag > 0) {
        alert("Changed");
        clearInterval(check);
    }
}
var check = window.setInterval("CheckFlag()", 25);
ConditionalFlag++;
Run Code Online (Sandbox Code Playgroud)

然而,这似乎有点矫枉过正.有没有办法用jQuery或javascript将事件处理程序附加到此变量?

javascript jquery

10
推荐指数
2
解决办法
2万
查看次数

轻量级单向数据绑定的最佳解决方案

我有一个单页面应用程序,我正在研究变量x可能因多种原因而发生变化.我希望DOM中显示的值(下面的div)始终与javascript变量的值匹配.

我理解像angular这样的框架对此有好处,但我正在寻找一个更轻量级和简单的解决方案.如果有帮助的话,我已经在页面上使用了JQuery和underscore.js.

 <script>
    var x = 100
    </script>

    <div id="value_display">100</div>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要一些我需要提供变量和元素作为参数的东西.例如:

bind(x,'#value_display')
Run Code Online (Sandbox Code Playgroud)

javascript jquery underscore.js

9
推荐指数
1
解决办法
2970
查看次数

如何创建一个检测布尔变量是否为真的事件监听器?

例如,我有var menu_ready = false;.我有一个ajax函数,menu_ready当ajax完成时设置为true:

//set up event listener here

$(...).load(..., function() {
    ...
    menu_ready = true;
}
Run Code Online (Sandbox Code Playgroud)

如何设置等待为menu_ready真的事件监听器?

javascript jquery events event-handling

7
推荐指数
3
解决办法
1万
查看次数

网站是否可以知道您是否编辑了他们的javascript变量?

所以我被迫为我的学校完成一个使用javascript函数的在线课程,以确保每个学生在页面上停留至少"required_variable"的时间量.现在使用javascript控制台我可以将required_variable时间量重置为0,从而允许我在不等待时间的情况下转到下一页.所以我的问题是网站是否可能知道我正在重置他们的变量.我查看了他们的代码,我严重怀疑这个特定的网站可以,但我更想知道因为我设计网站,并且有一些javascript变量我不想在我的一些网站中被覆盖.

javascript

7
推荐指数
1
解决办法
118
查看次数

如何检测属性何时添加到 JavaScript 对象?

var obj = {};
obj.a = 1; // fire event, property "a" added 
Run Code Online (Sandbox Code Playgroud)

这个问题是从不同的这一个,当已声明属性更改其中的方法来检测,正在讨论之中。

javascript

6
推荐指数
1
解决办法
2156
查看次数

JavaScript中的"可绑定"变量?

根据我在Flex中的经验,我学习了Bindable变量,例如,文本元素的内容随着变量的值而变化.

我想知道是否有可能在JavaScript中做这样的事情.例如,假设我有一个<h1 id="big_title">我想要包含文档标题的内容.这可以很容易地完成document.getElementById('big_title').innerHTML = document.title;,但如果document.title改变怎么办?我也必须手动更新big_title.

放置它的另一种方法是,有没有办法onchange在变量而不是DOM元素上创建类似于自定义的事件处理程序?此处理程序可以根据需要更新标题.

编辑:我知道我可以使用a setInterval来检查变量"绑定"(在数组中定义)并根据需要进行更新,但这有点像hack-ish并且需要在响应性和对性能的影响之间进行折衷.

javascript data-binding

5
推荐指数
1
解决办法
4284
查看次数

保护全局Javascript"API"对象

我目前有一个运行基于Javascript的全局API的Web应用程序,它初始化如下:

var Api = {
    someVar: "test",
    someFunction: function() {
        return "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

此API在Web应用程序中的许多"窗口小部件"中共享,它们应该全部运行此单个Api实例,以便它们可以相互传递数据.

AJAX目前用于加载这些小部件,例如在小部件/ mywidget.html中,它放在,例如, <div id='widget_<random number>'>...</div>

代码的某些其他部分可能会选择添加更多功能Api,目前它的执行方式如下:

Api.myExtension = {
    myNewFunction: function() {
        return "bar";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这种用法会产生一些问题:

问题一:如果一个小部件(这些可能由第三方提供)决定隐藏一些代码,并做类似的事情Api = {},摧毁Api一切所有的全局变量,并打破整个应用程序,该怎么办?是否有可能保护此Api变量不被外部覆盖?只允许"扩展"(添加新内容),但不允许"删除/更改".即:

Api.foo = { test: "bar" } // allowed
Api.someVar = "changing the existing someVar"; // not allowed
Run Code Online (Sandbox Code Playgroud)

以下代码位于"内部" Api,例如:

var Api = {
    Debug: {
        Messages = new Array,
        Write: function() {
            Api.Debug.Messages.push("test"); …
Run Code Online (Sandbox Code Playgroud)

html javascript object

5
推荐指数
1
解决办法
273
查看次数