将“this”与事件委派Jquery一起使用

将“this”与事件委派Jquery一起使用,jquery,event-delegation,Jquery,Event Delegation,我正在尝试将以下简单的单击事件函数转换为委托函数。有人能帮我吗 $(".click-slide").click(function(){ $(this).siblings().slideToggle(); $(this).find("button").toggleClass('uparrow'); }); 这是我迄今为止所做的,但都是徒劳的 $(".refine-buttons .wd-210").on("click", ".click-slide",(function(){ $(thi

我正在尝试将以下简单的单击事件函数转换为委托函数。有人能帮我吗

$(".click-slide").click(function(){
$(this).siblings().slideToggle();
$(this).find("button").toggleClass('uparrow');
});
这是我迄今为止所做的,但都是徒劳的

$(".refine-buttons .wd-210").on("click", ".click-slide",(function(){
    $(this).siblings().slideToggle();
    $(this).find("button").toggleClass('uparrow');
});
对应的HTML为:

<div class="refine-buttons wd-210">
    <div class="btn-slide" id="term">
    <div class="click-slide">
        <button>Search Terms (0)</button>
    </div>
    <div class="btn-box">
        <label>Some thing</label>
    </div>
</div>
<div class="btn-slide">
    <div class="click-slide">
        <button>Categories ()</button>
    </div>
    <div class="btn-box">
        <label>Other thing</label>
    </div>
</div>
</div>
请注意,以下内容是在DOM就绪后动态添加的

我认为这个关键词导致了这个问题。非常感谢您的帮助。

请尝试删除此处的引号

更改为:

 $(this)
你不需要在里面加引号

您可以从回调中删除:

$(".refine-buttons.wd-210").on("click", ".click-slide",(function(){
// this one--------------------------------------------^
因为静态父类有两个类,所以它们之间不需要有空格:

$(".refine-buttons.wd-210") // matches the parent div
加载页面后是否创建.refine按钮和.wd-210

如果是,则您必须以现有的父/母、父/母等为目标。单击幻灯片

e、 g


并删除$this中的引号,它应该是$this

顺便问一下,元素在哪里有类优化按钮?@Mritunjay:这是一个错误,请检查更新的代码。您的父元素应该是这样的:$.refine-buttons.wd-210
$(".refine-buttons.wd-210").on("click", ".click-slide",(function(){
// this one--------------------------------------------^
$(".refine-buttons.wd-210") // matches the parent div
$("html body").on("click", ".click-slide",function(){
  $(this).siblings().slideToggle();
  $(this).find("button").toggleClass('uparrow');
});