1

请看这里:http ://www.wunderwedding.com/weddingvenues/search

在左侧有一个过滤器“显示更多城市......”

单击它时,我想显示更多城市。但是现在,当它被点击时,框会展开并立即再次折叠。我不知道我做错了什么。这是显示/隐藏的代码:

$("#toggle_cities").click(function () {
    if ($("#facets_city").is(":visible")) {
        $("#toggle_cities").text('toon meer steden...');
    }
    else {
        $("#toggle_cities").text('toon minder steden...');
    }
    $("#facets_city").slideToggle("slow");
});
4

4 回答 4

2

它可能是事件冒泡,所以点击发生了两次。

$("#toggle_cities").click(function (e) {
    e.stopPropagation(); // stops event propagation
    if ($("#facets_city").is(":visible")) {
        $(this).html('toon meer steden...');
    }
    else {
        $(this).html('toon minder steden...');
    }
    $("#facets_city").slideToggle("slow");
});
于 2012-06-24T20:07:54.890 回答
2

jQuery 1.4.2 订阅的点击事件(触发事件) _genfunc-1.6.1.js 中第 252 行定义的函数

function () {
    if ($("#facets_city").is(":visible")) {
        $("#toggle_cities").text('toon meer steden...');
    }
    else {
        $("#toggle_cities").text('toon minder steden...');
    }
    $("#facets_city").slideToggle("slow");
}

和:

jQuery 1.4.2 订阅的 click 事件(触发事件) myfuncs_en.js 中第 61 行定义的函数

function () {
    if ($("#facets_city").is(":visible")) {
        $("#toggle_cities").text('show more cities...');
    }
    else {
        $("#toggle_cities").text('show less cities...');
    }
    $("#facets_city").slideToggle("slow");
}

您有两个事件处理程序。我猜一个是英文的,一个是...err..Dutch的?

PS Visual Event 小书签对于这样的问题非常有用:http ://www.sprymedia.co.uk/article/Visual+Event+2

于 2012-06-24T20:55:39.890 回答
1

尝试事件切换。http://api.jquery.com/toggle-event/

$("#toggle_cities").toggle(function () {
    $(this).text('toon meer steden...');
    $("#facets_city").slideDown("slow");
},function(){
    $(this).text('toon minder steden...');
    $("#facets_city").slideUp("slow");
});
于 2012-06-24T21:35:45.670 回答
0

当我查看 web 检查器的脚本选项卡时,我看到页面中嵌入了三个 jquery 脚本。踢掉其中两个,然后再试一次。

恕我直言,这不是传播问题,因为#facets_city-element 不是#toggle_cities-element 的子元素。

于 2012-06-24T20:48:18.627 回答