jquery - 使用 jQuery 控制重复的 div

标签 jquery html css

我有两个具有相同内容的 div,它们必须显示在同一页面的不同位置。问题是,当我想在容器二中显示内容时,我会在容器一中产生相同的 div。有没有办法让 jQuery 将每个容器视为单独的实体?我必须使用 jQuery 插件吗?

HTML

<body>
    <div class="container1">
        <div class="main" style="display:none">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor     incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis      nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.       Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu     fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,  sunt in     culpa qui officia deserunt mollit anim id est laborum.
        </div>
    </div>
    ...
    <div class="container2">
        <div class="main" style="display:none">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor     incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis      nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.       Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu     fugiat n    ulla pariatur. Excepteur sint occaecat cupidatat non            proident,   sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
    <div>

    <div class="button1">Display top main div</div>
    <div class="button2">Display bottom main div</div>
</body>

jQuery

(function($) {
    $(".button1").click(function() {
        $('.main').slideToggle(500);
    });

    $(".button2").click(function() {
        $('.main').slideToggle(500);
    });
})(jQuery);

//我可以使用这个插件吗 (函数($){

var methods = {
    init: function(options) {
        return this.each(function() {               
            var $this = $(this);       

        });
    }
};

$.fn.plugin = function(method) {
    if (methods[method]) {
        return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
    } else if (typeof method === 'object' || !method) {
        return methods.init.apply(this, arguments);
    } else {
        $.error('Method ' + method + ' does not exist on jQuery.plugin');
    }
};

})(jQuery);

最佳答案

这应该可以解决问题:

(function($) {

    $(".button1").click(function() {
        $('.container1 .main').slideToggle(500);
    });

    $(".button2").click(function() {
        $('.container2 .main').slideToggle(500);
    });

})(jQuery);

不过,您必须将顶级容器的类重命名为 .container1。但我认为这是计划,因为您在描述中将其称为 container one

关于jquery - 使用 jQuery 控制重复的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9094316/

相关文章:

jquery - 如何只打乱表格的第一列?

javascript - 使用 javascript 重写特定链接,但指向特定目录的链接除外

angularjs - 可以创建可嵌入的基于 AngularJS 应用程序的小部件吗?

javascript - 使用 JS/CSS 将 <area> 转换为具有完全相同位置和形状的 <div>

javascript - 有选择地更改类的 href

javascript - JS函数未定义,传递变量

javascript - 优化 jQuery 代码

javascript - 错误 403 Html 图片获取

JavaScript:(如何)可以在 Chrome 的 DevTools 中检索外部 CSS 规则?

html - 使用 Overflow-y :scroll 将 child 拖出容器