0

我已经集成了jquery-asmselect,并且希望能够使用页面上的其他链接来选择选项。为了可视化我正在尝试做的事情,您可以在此处查看页面

这是我用于 asmselect 的 jquery 代码:

$(document).ready(function() {
    $("#CategoryID").asmSelect({
        addItemTarget: 'bottom',
        animate: true,
        highlight: false,
        sortable: false
    }).after($("<a href='#' class='select-all'>select all neighborhoods</a>").click(function() {
        $("#CategoryID").children().attr("selected", "selected").end().change();
        return false;
    })); 
    $("#search_SubCategoryID").asmSelect({
        addItemTarget: 'bottom',
        animate: true,
        highlight: false,
        sortable: false
    }).after($("<a href='#' class='select-all'>select all cuisines</a>").click(function() {
        $("#search_SubCategoryID").children().attr("selected", "selected").end().change();
        return false;
    })); 
}); 
4

1 回答 1

0

首先,您需要确定您正在点击的社区。添加 rel (如在选项中)可能有效:

...
<li class="evillage">
    <a href="#" rel="asm0option0">East Village/LES</a>
</li>
...

然后,添加此脚本:

$(".search-map a").click(function(event) {
    event.preventDefault();
    var hood = $(this).attr('rel');
    var $option = $('option[rel=' + hood + ']');

    $option.change();
    return false; 
});

基于这个asmselect 示例。您只需要根据单击的链接获取对应的选项,然后change();在其上调用触发器即可。

编辑:

上面的代码失败了很多时间:P 这是新版本(带有工作小提琴):

$(".search-map a").click(function() {

    var $city = $(this).html();
    var $rel = $(this).attr('rel');
    var disabled = $('#asmSelect0 option[rel=' + $rel + ']:first').attr('disabled');

    if (typeof disabled !== 'undefined' && disabled !== false) {
        return false;
    }

    var $option = $('<option></option>').text($city).attr({'selected': true, 'rel': $rel});

    $('#asmSelect0').append($option).change();
    $('#asmSelect0 option[rel=' + $rel + ']:first').remove();

    return false; 
}); 

我不得不做一些我不太喜欢的事情,但我找不到任何其他方式来做到这一点而不与插件发生冲突。无论如何,这并没有那么糟糕。基本上我得到了邻居的名称,识别选项的 rel ,生成一个新的<option>change();它,并删除旧的选项标签。该插件不喜欢在不创建新标签的情况下尝试更改标签本身......我不得不添加这个if (...)东西,因为当添加一个社区时(在选择上禁用它),然后再次点击同一个社区,它启用了它在选择上(我们不希望这样,因为它已经被选中)。在这种情况下,如果我们点击一​​个邻居被禁用的链接,我们什么也不做,选项将保持不变。

抱歉,如果我的解释很糟糕,我花了一段时间才解决问题,我不得不重新构建所有内容,而且我觉得缺乏英语 xD 希望它有效!

于 2011-12-11T22:49:09.113 回答