Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MooTools事件委托:如何引用回调中的子元素?_Javascript_Mootools_Mootools Events - Fatal编程技术网

Javascript MooTools事件委托:如何引用回调中的子元素?

Javascript MooTools事件委托:如何引用回调中的子元素?,javascript,mootools,mootools-events,Javascript,Mootools,Mootools Events,拥有这段HTML: <div id="modal"> <select class="country"> <option value=""></option> <option value="opt">Opt</option> </select> </div> 日志显示this关键字引用了模态元素。我想为每个国家/地区触发事件。选择并在回调中引用每个国家/

拥有这段HTML:

<div id="modal">
    <select class="country">
        <option value=""></option>
        <option value="opt">Opt</option>
    </select>
</div>
日志显示this关键字引用了模态元素。我想为每个国家/地区触发事件。选择并在回调中引用每个国家/地区。我怎么能得到它?
这是小提琴:

来自IRC频道的聊天:

事件委派基于事件冒泡。 因此父元素中的元素将触发一个事件。然后它将触发其父节点中的事件。。。 它一直这样做,直到没有更多的父母窗口 因此,您实际上只是将回调设置为当父对象之一接收到从其子对象传递的事件时发生。 我剩下的唯一解决办法是教育:

$('modal').addEvent('change:relay(.country)', function(event, target){
    console.log(this, event, target); // Then "this" refers to each .country select.
});
$$('.country').each(function(el){
    $('modal').fireEvent('change', [null, el]);
});

小提琴:来自IRC频道的聊天:

事件委派基于事件冒泡。 因此父元素中的元素将触发一个事件。然后它将触发其父节点中的事件。。。 它一直这样做,直到没有更多的父母窗口 因此,您实际上只是将回调设置为当父对象之一接收到从其子对象传递的事件时发生。 我剩下的唯一解决办法是教育:

$('modal').addEvent('change:relay(.country)', function(event, target){
    console.log(this, event, target); // Then "this" refers to each .country select.
});
$$('.country').each(function(el){
    $('modal').fireEvent('change', [null, el]);
});

小提琴:

这可能就是你想要的。。。我在一年多前在IRC里发现了这个,但我不能告诉你是谁提供的


还有一种更好的代码重用的元素方法-

这可能就是您所追求的。。。我在一年多前在IRC里发现了这个,但我不能告诉你是谁提供的


还有一个更好的代码重用元素方法-

这不是我需要的。我知道MooTools上的基本事件。我说的是新的活动授权系统,它有中继活动。这不是我需要的。我知道MooTools上的基本事件。我说的是带有中继事件的新事件委派系统。当手动更改select中的选项时,此内部处理程序函数引用select元素。@是的,但我不是说单击select并用鼠标选择选项。我说的是通过JS启动事件。无论如何,谢谢。当手动更改“选择”中的选项时,此内部处理程序函数引用“选择”元素。@是的,但我不是说单击“选择”并用鼠标选择选项。我说的是通过JS启动事件。无论如何,谢谢你。非常感谢你,这就是我要找的!非常感谢,这就是我要找的!我也有同样的问题。这是一条路要走,即使这条线可能已经死了。。。我也有同样的问题。这是一条路要走,即使这条线可能已经死了。。。
$('modal').addEvent('change:relay(.country)', function(event, target){
    console.log(this, event, target); // Then "this" refers to each .country select.
});
$$('.country').each(function(el){
    $('modal').fireEvent('change', [null, el]);
});