javascript - jQuery,单击哪个元素(动态)?

标签 javascript jquery

所以我对 jQuery 还很陌生。

我想做什么:

每当用户单击我的 ul 中的一个元素时,我需要该列表元素的 ID 并运行一个函数。 li 的名称类似于带有附加 _button 标记的 div。例如。

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()函数,让指向li-Element的div从右边滑入

再次:

li-ID 是这样构建的:

test1_button

test2_button

...

div-ID 是这样构建的

测试1

测试2

...

显然 test1_button 指的是 test1 等等。

谢谢!

最佳答案

试试这个

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

代替

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

对你有用。

谢谢

关于javascript - jQuery,单击哪个元素(动态)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071694/

相关文章:

javascript - 如何在不打开日历的情况下动态更改日期

javascript - Angular 更新绑定(bind)配置

javascript - 使用 Javascript 定期动画化数字

javascript - 为什么我有时需要使用 JSON.stringify 有时不需要

javascript - 为什么这段 JQuery 代码没有返回任何内容?

javascript - Crontab 未运行重新加载页面的 javascript

jquery - 使用数据:text/css?是否有效

javascript - 页面加载后重新应用 JavaScript

php - 在 Wordpress 中包含一个 github jquery 插件

javascript - jQuery replaceWith 填充原始 HTML 而不是替换为新标签 : How do I fix this?