背景:我正在创建一个让人联想到whenisgood.net的表,因为它具有click-n-drag切换表元素.当左,中,右鼠标按钮激活mousedown事件时,我想调用不同类型的切换代码.
通过使用JQuery,我有一个良好的开端.
$(".togglable").bind("contextmenu", function() {return false;});
$(".togglable").bind("mousedown", function(e){
e.preventDefault();
toggle(this, e);
});
Run Code Online (Sandbox Code Playgroud)
在toggle()我可以e.which用来确定点击了什么按钮的函数中.
妙语:我用e.preventDefault()希望将停止滚动的中间点击默认行为.它没有.我该怎么做才能阻止滚动动作激活?
我试图理解node.js中addListener的目的.有人可以解释一下吗?谢谢!一个简单的例子是:
var tcp = require('tcp');
var server = tcp.createServer(function (socket) {
socket.setEncoding("utf8");
socket.addListener("connect", function () {
socket.write("hello\r\n");
});
socket.addListener("data", function (data) {
socket.write(data);
});
socket.addListener("end", function () {
socket.write("goodbye\r\n");
socket.end();
});
});
server.listen(7000, "localhost");
Run Code Online (Sandbox Code Playgroud) 当然这个问题很简单,但我无法弄清楚这一点.
我正在使用DOMNodeInserted事件来检测何时插入新元素.
我不知道如何使用当前元素,例如获取它的父ID.
现在我有这样的功能:
document.addEventListener("DOMNodeInserted", function(event){
var element = event.target;
if (element.tagName == 'DIV') {
if (element.id == 'ndiv_3-1VTSTHR') {
alert($('#ndiv_3-1VTSTHR').parent().get(0).tagName);
}
}
});
Run Code Online (Sandbox Code Playgroud)
这有效,但它会给我ndiv_3-1VTSTHR元素的父级.我想知道使用JQuery的任何元素的父级.
我试过了
alert($(this).parent().get(0).tagName);
Run Code Online (Sandbox Code Playgroud)
但没有运气.
我正在编写自定义滚动条并正在捕捉鼠标滚轮事件.我正在使用它然后调整我想要滚动的元素的scrollTop.
是否有标准数量的像素向下滚动,或者它是否因系统而异?
我在最新版本的Firefox中展示了114px:

这与IE9相比令人沮丧.此代码适用于IE7/8,但不适用于9.
document.getElementById('id').fireEvent("OnChange");
Run Code Online (Sandbox Code Playgroud)
任何洞察力为什么?
javascript internet-explorer javascript-events internet-explorer-9
我不知道为什么这不起作用,但我确定这是一个非常常见的javascript.我的语法显然缺乏,我不知道为什么:
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" />
Run Code Online (Sandbox Code Playgroud)
谢谢!
第一个版本没有向我显示x和y并得到以下错误:Uncaught TypeError: Cannot read property 'pageX' of undefined第二个版本工作但编码非常相似,找不到问题.
第一版(不工作)
<form name ="show">
<input type="text" name="mouseXField" value="0" size="6">Mouse X Position<br>
<input type="text" name="mouseYField" value="0" size="6">Mouse Y Position<br>
</form>
<script type="text/javascript">
var mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
if (!mie) {
document.captureEvents(Event.MOUSEMOVE);
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousemove = mousePos();
document.onmousedown = mouseClicked();
var mouseClick;
var keyClicked;
var mouseX = 0;
var mouseY = 0;
function mousePos (e) {
if (!mie) {
mouseX = e.pageX;
mouseY = e.pageY; …Run Code Online (Sandbox Code Playgroud) 对于Ajax应用程序,我反复使用jQuery的html()方法来更新DOM容器(覆盖HTML内容,然后将元素绑定到事件侦听器).
附加到被破坏内容的事件侦听器是否被jQuery正确删除,或者存在内存泄漏的风险?(这里已经有一些相关问题,但我找不到答案).
为什么单击男性单选按钮不起作用?
<div id="m_wrapper">
<input id="m" type="radio" name="sex" value="male" />Male<br>
</div>
<input id="f" type="radio" name="sex" value="female" />Female
<input id="o" type="radio" name="sex" value="other" />Other
$("#m_wrapper").click(function(e){
$("#m").prop('checked', true);
return false;
});
Run Code Online (Sandbox Code Playgroud)
我知道 - > return false is equivalent to call e.preventDefault() AND e.stopPropagation()
但是,当我单击单选按钮时,我有一个显式行设置,对于Male单选按钮,该属性选中为true.为什么preventDefault()将就UNDO事我设置?
顺便说一句,点击里面'm_wrapper'的任何地方都会检查单选按钮.这是有道理的.
我知道删除return false将解决问题.问题是'为什么?'
$("#m_wrapper").click(function(e){
$("#m").prop('checked', true);
return false;
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="m_wrapper">
<input id="m" type="radio" name="sex" value="male" />Male<br>
</div>
<input id="f" type="radio" name="sex" value="female" />Female
<input id="o" type="radio" name="sex" value="other" …Run Code Online (Sandbox Code Playgroud)我正在使用Polymer构建一个材料Web应用程序,我想在页面上获取图像的主要和次要颜色.我正在使用该on-click事件来触发一个函数,该函数从图像中检索数据并获取颜色.问题是该功能工作正常,除了实际参考图像 - ColorThief似乎无法"看到"图像.这是我的代码:
图片:
<img style="opacity: 0;position: absolute;top:-100px;left:-100px;" width="1" height="1" data-albumno="{{i}}" src="{{root}}{{a.image}}" on-load="{{colorthis}}">
Run Code Online (Sandbox Code Playgroud)
而colorthis功能:
Polymer('paper-albums', {
colorthis: function(event, detail, sender) {
var i = sender.dataset.albumno,
cT = new ColorThief(),
pallete = cT.getPalette(event.target, 2);
//code to handle the pallete//
}
});
Run Code Online (Sandbox Code Playgroud)
我相信这event.target就是问题所在; 我也尝试过使用sender,但这也没用.我会在这里提到图像?
我也尝试在Javascript中创建图像而不将其放入DOM中,但无济于事.这似乎是一项简单的任务,但事实证明它要复杂得多(至少对我而言).可能有一种更好的方式,我错过了.
javascript ×9
jquery ×6
events ×2
image ×1
listeners ×1
memory-leaks ×1
mouseevent ×1
node.js ×1
onclick ×1
onmousemove ×1
polymer ×1
scroll ×1