所以我对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 等等..
谢谢!
答案 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)