从子节点触发事件但让父节点在Jquery中侦听它

时间:2011-08-11 15:51:55

标签: jquery

是否可以让子项在选中时触发名为CHANGED的自定义事件,但让其父级侦听该事件。是否有可能通过事件冒泡到父母

我有一个来自某人的插件,就像这样。 (#selector).dropdown();

在下拉列表中,它会重新创建一个选择列表。

  <select id="selectBox">
     <option value="0">Select</option>
     <option value="1">1</option>
     <option value="2">2</option>
  </select>

现在当点击其中一个li选择器时,我想从下面触发一个事件,但让父母听它。父表示slectBox元素。

    // INSIDE PLUGIN
    $("li", ul).click(function () {
       $(this).trigger('CHANGED');
    });

   //IN MY PAGE CODE
  $(function(){
       ('#selectBox').dropdown();
       ('#selectBox').bind('CHANGED', update);

       function update(evt){
          alert(evt.target);
       } 
  });

2 个答案:

答案 0 :(得分:0)

所以,我必须在这里错过一些上下文,但是如果你可以创建一个事件,你知道元素名称,并且你知道什么时候你想要它执行,为什么不正常添加另一个事件处理程序呢?

在你的情况下:

  $(function(){
       $('#selectBox').bind('change', update);

       function update(evt){
          alert(evt.target);
       } 
  });

http://jsfiddle.net/qruKH/

答案 1 :(得分:0)

这就是委托功能的用途:

<script type="text/javascript">
    $(document).ready(DocReady);

    function DocReady()
    {
        $("#selectBox").delegate("option", "click", SelectClicked);
    }

    function SelectClicked()
    {
        alert("You clicked: " + this.text);
    }