如何捕获jQueryUI中的选择事件?

时间:2015-11-18 16:49:18

标签: javascript jquery jquery-ui javascript-events event-handling

我在网页上有一些链接。他们打开一个类似的对话窗口,通过$.load()加载相同的内容。内容包含ul列表,并使用$.selectable()插件:

$('.select-dialog-cities > ul').selectable({filter: 'li'});

我想处理selectableselected事件。由于我有三个链接,我需要分开事件。没有全球旗帜可能吗?像这样:

$("#dialog_id .select-dialog-cities > ul").on("selectableselected", function(event, ui){});

3 个答案:

答案 0 :(得分:1)

根据您尝试实现的目标,您可能只是查询实际选择的元素,如下所示:

$("#selectable").on("selectableselected", function(event, ui){
    $('.ui-selected').each(function(){
        console.log($(this).text());
    });
});

Example on JSFiddle

如果您在不同的对话框窗口中执行此操作,则可能需要在每次创建新对话窗口时绑定到该事件。

答案 1 :(得分:0)

要捕获该事件,您应该为初始化selected的对象的selectable属性提供一个函数。试试这个:

$('.select-dialog-cities > ul').selectable({
    filter: 'li',
    selected: function(e, ui) {
        console.log('You chose something!');
    }
});

您可以通过传递给函数的selected参数的ui属性获取有关引发事件的元素的信息。

jQueryUI Docs

中的更多信息

答案 2 :(得分:0)

我伤心地说:

  

通过$ .load()加载相同的内容。内容有ul列表

我无法以这种方式分配事件:

$("#dialog_id .select-dialog-cities > ul").on("selectableselected", function(event, ui){});

因为我忘记了文档$.on()中的一个时刻:

  

事件处理程序仅绑定到当前选定的元素;的他们   在您的代码调用.on()时必须存在

所以解决方案非常简单:

$("#dialog_id").on("selectableselected", ".select-dialog-cities > ul", function(event, ui){});
相关问题