试图弄清楚如何将Jquery .on()方法与具有多个与之关联的事件的特定选择器一起使用.我之前使用过.live()方法,但不太确定如何用.on()完成同样的壮举.请参阅下面的代码:
$("table.planning_grid td").live({
mouseenter:function(){
$(this).parent("tr").find("a.delete").show();
},
mouseleave:function(){
$(this).parent("tr").find("a.delete").hide();
},
click:function(){
//do something else.
}
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过调用以下方式分配多个事件:
$("table.planning_grid td").on({
mouseenter:function(){ //see above
},
mouseleave:function(){ //see above
}
click:function(){ //etc
}
});
Run Code Online (Sandbox Code Playgroud)
但我相信正确使用.on()会是这样的:
$("table.planning_grid").on('mouseenter','td',function(){});
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?或者这里的最佳做法是什么?我尝试了下面的代码,但没有骰子.
$("table.planning_grid").on('td',{
mouseenter: function(){ /* event1 */ },
mouseleave: function(){ /* event2 */ },
click: function(){ /* event3 */ }
});
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我有一个网站,其中包含与此类似的元素:
<p id="root.SomeCoolThing">Some Cool Thing</p>
Run Code Online (Sandbox Code Playgroud)
我不能用jQuery选择段落,$('#root.SomeCoolThing')因为jQuery认为,SomeCoolThing是一个元素的类id="root".
如何用jQuery选择这个元素?我想避免像这样的结构:
$(document.getElementById('root.SomeCoolThing'))
Run Code Online (Sandbox Code Playgroud) 我想获得具有特定类前缀的第一个父类,假设:
<div class="div-a3332">
<div class="div-a89892">
<p>
<div class="div-b2">
<div id="divid">hi</div>
</div>
</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
例如,我当前的元素是#divid,我想找到具有类前缀div-a的第一个元素.所以基本上它会选择:
<div class="div-a89892">
Run Code Online (Sandbox Code Playgroud) 我怎样才能使用JQuery检查一个值是否属于下拉列表?
$("*").click(function(){
$(this); // how can I get selector from $(this) ?
});
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来获得选择器$(this)?有一种方法可以通过选择器选择元素,但是从元素中获取选择器呢?
据我所知,有很多方法可以在jQuery中选择子元素.
//Store parent in a variable
var $parent = $("#parent");
Run Code Online (Sandbox Code Playgroud)
方法1 (使用范围)
$(".child", $parent).show();
Run Code Online (Sandbox Code Playgroud)
方法2 (find()方法)
$parent.find(".child").show();
Run Code Online (Sandbox Code Playgroud)
方法3 (仅限直系儿童)
$parent.children(".child").show();
Run Code Online (Sandbox Code Playgroud)
方法4 (通过CSS选择器) - 由@spinon建议
$("#parent > .child").show();
Run Code Online (Sandbox Code Playgroud)
方法5 (与方法2相同) - 根据@Kai
$("#parent .child").show();
Run Code Online (Sandbox Code Playgroud)
我不熟悉分析能够自己调查这个,所以我很想知道你要说些什么.
PS我明白这可能是这个问题的重复,但并不涵盖所有方法.
我最近升级了我的PHPStorm IDE版本,它现在警告我jQuery使用效率低下.
例如:
var property_single_location = $("#property [data-role='content'] .container");
Run Code Online (Sandbox Code Playgroud)
提示此警告:
检查jQuery选择器是否以有效的方式使用.它建议拆分以ID选择器为前缀的后代选择器,并警告可以缓存的重复选择器.
所以我的问题是:
为什么效率低,做上述选择器的有效方法是什么?
我猜是:
var property_single_location = $("#property").find("[data-role='content']").find(".container");
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
我是jQuery的新手,我想知道jQuery get()和eq()函数之间的区别.我可能会误解get()函数的作用,但我觉得奇怪的是我无法在同一行中返回的元素上返回一个函数.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
Run Code Online (Sandbox Code Playgroud) 高级标题,简单问题:
如何在jQuery中执行以下操作(隐藏除了之外的所有内容$(this))?
$("table tr").click(function() {
$("table tr:not(" + $(this) + ")").hide();
// $(this) is only to illustrate my problem
$("table tr").show();
});
Run Code Online (Sandbox Code Playgroud) 在jquery中有什么东西可以让我区分双击和单击的行为吗?
当我将两个绑定到同一个元素时,只执行单击.
是否有一种方法可以在执行单击之前等待一段时间以查看用户是否再次点击?
谢谢 :)
jquery-selectors ×10
jquery ×9
javascript ×2
performance ×2
jquery-1.7 ×1
profiling ×1
this ×1