2016-04-16 11 views
0

zu finden versuchen, wie die var msg Ergebnisse für Argumente aus dieser jquery Funktion in einer IF Anweisung übergeben:Verschachtelte IF in JQuery - korrekte JavaScript-Syntax

$(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>"); 
}}); 

Was mache ich falsch?

+3

warum nicht 'if (event.page X> '750') {'? Was ist die Rolle von "msg" in Ihrer if-Bedingung? – gurvinder372

+0

, um irgendeine Art von Aktion, sagen wir zum Beispiel, zu zeichnen. – erezT

+2

Was soll 'msg-> event.pageX' bedeuten? Was willst du ausdrücken? Es ist überhaupt nicht klar von der Frage. – Pointy

Antwort

1

I would like to create some sort of heatmap that would take the vars and manipulate them later, what would be the proper way to syntax this

So etwas wie diese

$(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>"); 
    } 
}); 
+1

erez.js: 7 Uncaught ReferenceError: msg ist nicht definiert – erezT

+0

@erezt versuche es erneut – gurvinder372

+0

funktioniert hervorragend, wie würde ich in der Lage, diese vars zu verwenden? Jedes Mal, wenn ich versuchte, console.log (map) zu deklarieren, gab es zurück, dass 'Map nicht definiert ist. Vielen Dank!! – erezT

0

Ich schlage vor, Sie einen Blick auf debounce zu nehmen, weil das mousemove- Ereignis so viele oft ausgelöst wird und schnell und so können Sie schreiben so etwas wie:

// 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>

+0

Sehr interessanter Gedanke, versucht es auf Kumpel. – erezT