首页 > 解决方案 > 您可以使用 jQuery 处理程序作为 .on() 的选择器吗?

问题描述

是否可以使用 jQuery 处理程序$(...)作为选择器.on()?下面的代码片段说明了我的观点:如果我没有选择器的纯文本表示,但有处理程序,如何使圆圈变为蓝色

// This works.
$(document).on('click', '#wow', function()
{
    $(this).css('background-color', '#FF0000');
});

// This doesn't work, but I need it to!
var context = $('#wow');
$(document).on('click', context, function()
{
    $(this).css('background-color', '#0000FF');
});
#wow
{
  background-color: #CCC;
  border-radius: 100px;
  height: 100px;
  width: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wow"></div>

标签: javascriptjquery

解决方案


不。委托事件处理程序的第二个参数的点是一个选择器,用于匹配未来事件起源的元素。尝试使用现有元素作为第二个参数与委托事件处理程序的目的不符。

更多阅读:http ://learn.jquery.com/events/event-delegation/

否则,只需使用普通的事件处理程序。

$('#wow').on('click', function() {
    $(this).css('background-color', '#FF0000');
});

推荐阅读