【问题标题】:Nested IF in Jquery - proper javascript syntaxJquery中的嵌套IF - 正确的javascript语法
【发布时间】:2016-08-08 10:52:01
【问题描述】:

试图找出如何在 IF 语句中为来自此 jquery 函数的参数传递 var msg 结果:

$(document).mousemove(function( event ) {
var msg = "Handler for .mousemove() called at ";
msg += event.pageX + ", " + event.pageY;
if (msg->event.pageX > '750'){
$( "‪#‎log‬" ).append( "<div>" + msg + "</div>" );
}});

我做错了什么?

【问题讨论】:

  • 为什么不if (event.pageX &gt; '750'){msg 在你的 if 条件中的作用是什么?
  • msg-&gt;event.pageX 应该是什么意思?你想表达什么?从这个问题中根本不清楚。
  • @erezT 但你不会在(condition) 内绘图,它会在 if 块内,对吧?
  • @gurvinder372 event.pageX is a Number :) 所以event.pageX &gt; 750
  • 这与在服务器上运行的 php 有什么关系?请阅读How to Ask

标签: javascript jquery arguments


【解决方案1】:

我想创建某种可以获取变量的热图 并稍后对其进行操作,正确的语法方式是什么

类似的东西

$(document).mousemove(function( event ) {
 var map=   {} ;
 var msg = event.pageX + ", " + event.pageY;
  map.x = event.pageX - 0; 
  map.y = event.pageY - 0; 
  if ( map.x > 750)
  {
    var msg = "Handler for .mousemove() called at ";
    $( "‪#‎log‬" ).append( "<div>" + msg + "</div>" );
  }
});

【讨论】:

  • erez.js:7 Uncaught ReferenceError: msg is not defined
  • 效果很好,我将如何使用这些变量?每当我尝试 console.log(map) 时,它都会返回“未定义地图”。谢谢!!
  • 那么你需要在事件处理程序之外定义它们
【解决方案2】:

我建议你看一下debounce,因为 mousemove 事件被触发的频率和速度非常快,所以你可以写这样的东西:

// from https://github.com/m-gagne/limit.js/blob/master/limit.js
Function.prototype.debounce = function (milliseconds, context) {
  var baseFunction = this,
      timer = null,
      wait = milliseconds;

  return function () {
    var self = context || this,
        args = arguments;

    function complete() {
      baseFunction.apply(self, args);
      timer = null;
    }

    if (timer) {
      clearTimeout(timer);
    }

    timer = setTimeout(complete, wait);
  };
};

$(function () {
  $(document).on('mousemove', function(event) {
    if (event.pageX > 150){
      $('#log').append( '<p>' + 'Handler for .mousemove() called at ' + event.pageX + ', ' + event.pageY + '</p>');
    }
  }.debounce(5)); // debounce with a 5 millisecond limit

});
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>

<div id="log">

</div>

【讨论】:

  • 非常有趣的想法,在伙伴身上试试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
  • 2015-11-13
  • 2015-12-14
  • 1970-01-01
  • 2012-10-14
  • 2015-04-21
相关资源
最近更新 更多