这是一个关于用jQuery绑定点击事件的问题,我正试图弄清楚.
假设我有一个块元素,我绑定了一个点击,里面有一个段落标记.
<div id="testClick" style="width:200px; height:100px'>
<p>test click</p>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我将一个点击绑定到div:
$('#testClick').bind('click', function(e){
//with parent div (via e.target), do something
});
Run Code Online (Sandbox Code Playgroud)
现在,如果我点击p标签内的文本,e.target = p元素,如果我点击div(周围,而不是文本)e.target = div元素.所以e.target =点击的对象 - 即事件也绑定到指定元素的任何子节点.
这是可以预料的,但我需要对父div进行操作.并且使用e.target不是获取div引用的可靠方法,因为依赖于div中的位置,e.target返回不同的元素.如果我使用e.target.parent来获取对div的引用,则在文本周围的div中发生单击时会失败.
有没有简单的方法让e.target始终只返回点击最初绑定的确切元素?
(例如,在actionScript中有一个属性"mouseChildren",可以防止事件在绑定元素的子节点上触发)
(考虑以上所有伪代码)
<input>在聚焦时,如何使元素对按向上箭头(keyCode 38)或向下箭头(keyCode 40)没有反应?我正在为项目使用jQuery,但是如果这更容易的话,对于在原始JS中编写它没有任何疑虑.
谢谢!
为什么live()以后不能工作slice()?
我在这做错了什么?
$('.object').slice(1).live('mouseenter', function() {
alert();
});
Run Code Online (Sandbox Code Playgroud)
...
<div class="object">
1
<div class="object">
2
<div class="object">
3
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么我应该取消绑定或分离Javascript事件?
对愚蠢的问题表示歉意,但我需要专家澄清.
出了三块地的投入使用Javascript, ,head,$(document).ready或者body,其中将最好的地方是把一个使用了大量的一些Ajax $GET的功能呢?
例如,我使用的是一个调用的JavaScript函数,execute_send()但我不确定哪个地方最适合放置它.以下是错误:
Problem at line 67 character 22: 'execute_send' was used before it was defined.
function execute_send() {
此外,展示位置如何影响页面加载时间?
我有以下jQuery事件监听器来获取在文本框中按下的键:
$("#theInput").keyup(function (e) {
var charCode = e.keyCode || e.which;
alert(charCode);
/* rest of the code */
});
Run Code Online (Sandbox Code Playgroud)
我的问题是如何准确地获取键入的字母的代码.例如,如果我按下'a'键,它将提醒'65' - 无论是"a"还是"A".如果我将输入语言切换为外语(例如日语,中文,泰语)并按"a"键,它仍会返回"65"而不是代码,以便让我知道外来字符.
有没有办法解决这个问题,所以它给出了正确的语言和字母大小写?
javascript unicode jquery javascript-events character-encoding
我正在尝试模拟某些软件,我需要用户能够将某些文本输入到字段中,然后根据该文本将它们指向另一个页面.我已经创建了下面的代码,但似乎没有用.我正在使用IE 7,它似乎只是刷新页面,它实际上不会去新的位置.谁知道为什么?使用jquery 1.4.4 min *根据评论更新*仍然无法正常工作
<form id="TEST"><input type="text" id="command" tabindex="1"></form>
<script type="text/javascript">
$(document).ready(function() {
$('#command').keypress(function(e) {
if (e.which === 13) {
if ($('#command').value === "AI") {
window.location = "http://www.mozilla.org";
}
if ($('#command').value === "BRI") {
window.location = "http://www.google.com";
}
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我需要使用javascript或任何其他方法禁用我的网站中的shift keypress事件.以下是我的代码:
$(document).ready(function() {
document.onkeydown = checkKeycode
function checkKeycode(e) {
var keycode;
if (window.event) {
keycode = window.event.keyCode;
}
else if (e) {
keycode = e.which;
}
//alert(keycode);
if (keycode == 16) {
alert(keycode);
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud) 我在使用IE8中的jQuery挂钩窗口的mousedown事件时遇到了问题.我没有得到任何错误,但事件似乎没有被解雇.它在IE9和我尝试过的所有其他浏览器中都有效.这是我的代码:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function test(e) {
alert('test');
}
$(document).ready(function () {
$(window).mousedown(test);
});
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 像许多其他用户一样,我有'el'和事件的问题.在我的情况下,我已经测试了多个解决方案,包括使用默认的el(只是'')设置tagName,使用jQuery选择器将el设置为选择器,并为DOM做好准备.这些解决方案中的每一个都无法绑定事件,除了默认的el和tagName在生成html时都失败了.相关代码查看
$ ->
class Aggregator.Views.Streams.StreamView extends Backbone.View
template:JST["backbone/templates/stream"]
el: $('.item')
events:
"click div" : "testing"
initialize: (model)->
console.log @el
_.bindAll this , 'render'
@model.bind 'change', @render
@model.view = @
@render()
@delegateEvents()
render: ->
$(@el).html "test"
console.log @el
@
testing: ->
alert "EVENT"
#@model.clear()
Run Code Online (Sandbox Code Playgroud)
调用视图的函数(从另一个视图中提取)
view = new Aggregator.Views.Streams.StreamView({model: stream})
console.log view.el
$(@el).append view.render().el
Run Code Online (Sandbox Code Playgroud)
我有点困惑,我已设置el但它要么不创建,要么它不绑定事件.我已经尝试等待DOM加载并将el传递给构造函数但没有成功.对我最明显的错误的任何帮助将不胜感激.
javascript ×10
jquery ×7
ajax ×1
asp.net ×1
backbone.js ×1
coffeescript ×1
html ×1
unbind ×1
unicode ×1