jquery javascript onclick SlideDown panel

jquery javascript onclick SlideDown panel

本文关键字:panel SlideDown onclick javascript jquery      更新时间:2023-09-26

这里是bootsnip上的代码:http://bootsnipp.com/user/snippets/2pvGr

我正在尝试将导航栏的一个元素与一个面板链接起来。我想拥有以下功能:

当单击导航栏上id为"xxx"的元素时,id为"yyy"的面板将不失效(slideDown())

我不知怎么搞不明白。

(#osPartner导航栏)是导航栏中下拉菜单上按钮的id。

您可以查看更新后的JavaScript。。。

有人知道怎么做吗?

附言:另一个小细节。。我希望面板的初始位置是"向上滑动"。因此,当我点击父面板,它向下滑动时,两个子面板都会向上滑动(关闭),用户必须点击它们才能向下滑动。如果有人也能解决这个问题,那就太好了。

替换

var $this = (document).getElementById('osPartnerUebersicht');

带有

var $this = $('#osPartnerUebersicht');

hasClass是一个jQuery函数,因此您需要jQuery对象。

getElementById将返回dom元素。

不确定这是否有帮助,但我注意到你的JS有一些错误,但你没有提供任何人所需的完整html来提供正确的帮助,但请看一下:

新增:

instead of using $(document).on use $("#osPartner").on("click", func..)

$("#osPartner").on("click",  function(){
    var $this = $("#osPartnerUebersicht"); // Changed like BenG stated before I posted this.
    console.log($this);
    console.log($this.children[0]); 
    console.log($this.children[1]);
    if ($this.hasClass("panel-primary")) {
        console.log("I do!");
    }
});

以下是JSFiddle链接:https://jsfiddle.net/o8yqpefv/

 document.getElementById('contents'); //returns a HTML DOM Object
 var contents = $('#contents');  //returns a jQuery Object

在jQuery中,要获得与document.getElementById相同的结果,您可以访问jQuery对象并获得对象中的第一个元素(记住JavaScript对象的行为类似于关联数组)。

var contents = $('#contents')[0]; //returns a HTML DOM Object

所以你需要使用以下

var $this = $('#osPartnerUebersicht');