jQuery,哪个元素被点击(动态)?

时间:2016-06-28 09:04:03

标签: javascript jquery

所以我对jQuery很新。

我想做什么:

每当用户点击我的ul中的元素时,我想要该侦听的ID并运行一个函数。 li被称为div,带有aditional _button标签。例如

div id =“test1”

li id =“test1_button”

当前显示div-box应向左滑出,li元素(指向另一个div)应向右滑动。

这是我到目前为止所做的:

function SH_GET_DIV() {
   $('nav ul li').each(function(){

         var SH_MENU_ELEMENTS=String($(this).attr('id'));
         var SH_BUTTONS=SH_MENU_ELEMENTS.indexOf('_button');

         if( SH_BUTTONS >= 0 ) {
            var SH_MENU_CLEARED_STRING = SH_MENU_ELEMENTS.replace('_button','');
            if( $('#'+SH_MENU_CLEARED_STRING).css('display') == 'block') {

            $('#'+SH_MENU_CLEARED_STRING).hide('slide', {direction: 'left'}, 500);

            } 
         }
         });

}

该函数为我提供了当前显示的框,以便脚本显示,哪个框必须滑出。 此作品

我也有这个,工作

示例:

$('#sh_test1_button').click(function() {
      SH_GET_DIV();

      $('#sh_test').show('slide', {direction: 'right'}, 400);

});

这是非常静态的,所以我试图让它更有活力。

到目前为止我有这个:

$(document).on('click', 'nav ul li', function () {
    $(this.id).click(function() {
      SH_GET_DIV();

      $(this.id.replace('_button','')).show('slide', {direction: 'right'}, 400);

});
});

但是当我点击一个li-Element时没有任何反应。

所以我的问题是:

我如何动态构建它。我想知道点击了哪个li-Element,启动 SH_GET_DIV()函数,并让div(引用li-Element)从右侧滑入

再次:

li-IDs 的构建方式如下:

test1_button

test2_button

...

div-IDs 就像这样构建

TEST1

TEST2

...

显然 test1_button 指的是 test1 等等..

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个

$('#'+$(this).attr("id").replace('_button','')).show('slide', {direction: 'right'}, 400);

而不是

$(this.id.replace('_button','')).show('slide', {direction: 'right'}, 400);

会对你有用。

由于

答案 1 :(得分:1)

尝试使用以下代码获取ID:

$(this).attr("id")

而不是

$(this.id)