我有这两个函数(函数函数),但第二个函数没有触发,因为似乎indxc无法从父函数中捕获id。
$(".guddi").live('click',function(){
$("#licolor").show();
var indx = $(this).attr("id");
if (indx < 0) {
$('#color').css('display','none');
return;
}
var item = '<div class="fn_menu_title pointer risch"><span>Choose color</span></div><ul class="fn_menu">';
for (g=0; g < menu[indx].color.length; g++){
item += '<li><span class="pointer search_link" searchkey="'+ leString +' xdz'+ menu[indx].wert + ' xdz'+ menu[indx].color[g].farbe +'" id="'+[g]+'">' + menu[indx].color[g].farbe + '</span></li>';
}
$("#color").html(item+'</ul>').fadeIn();
$("#color").menuFlip();
$(".risch").live('click',function(){
$("#liqual").show();
var indxc = $(this).attr("id");
if (indxc < 0) {
$('#qual').css('display','none');
return;
}
var item2 = '<div class="fn_menu_title pointer"><span>Choose quality</span></div><ul class="fn_menu">';
for (i=0; i < menu[indx].color[indxc].quality.length; i++){
item2 += '<li><span class="pointer search_link" searchkey="'+ leString +' xdz'+ menu[indx].color[indxc].quality[i].wert +'">' + menu[indx].color[indxc].quality[i].wert + '</span></li>';
}
$("#qual").html(item2+'</ul>').fadeIn();
$("#qual").menuFlip();
});
});
答案 0 :(得分:2)
live()
,因此您可以使用on()
代替,例如
并在第二个函数内尝试alert
。
$(".risch").on('click',function(){
alert($(this).attr("id"));
});
答案 1 :(得分:1)
你可以这样做:
$(document).on('click', ".guddi", function(){
// all the stuff but not the second elem clik event
});
把它放在外面并按照这样做:
$(document).on('click', ".risch", function(){
// all stuff related to this event.
});
event delegation
需要closest existing parent
。在你的代码中很难得到这就是为什么我委托给document
它自己,因为这是页面中所有元素的父。
答案 2 :(得分:0)
只需从函数内部删除click函数并将其写在外面,这应该有用.. live
已弃用,因此我使用的是on
..
问题是...您在点击活动中点击了活动..所以要点击.risch
点击事件您必须点击.guddi
而不是可能因为您不能同时进行两次点击...单独保存它...现在文档可以找到每个点击事件并相应地触发...所以它可以工作
$(".guddi").on('click',function(){
$("#licolor").show();
var indx = $(this).attr("id");
if (indx < 0) {
$('#color').css('display','none');
return;
}
var item = '<div class="fn_menu_title pointer risch"><span>Choose color</span></div><ul class="fn_menu">';
for (g=0; g < menu[indx].color.length; g++){
item += '<li><span class="pointer search_link" searchkey="'+ leString +' xdz'+ menu[indx].wert + ' xdz'+ menu[indx].color[g].farbe +'" id="'+[g]+'">' + menu[indx].color[g].farbe + '</span></li>';
}
$("#color").html(item+'</ul>').fadeIn();
$("#color").menuFlip();
});
$(".risch").on('click',function(){
$("#liqual").show();
var indxc = $(this).attr("id");
if (indxc < 0) {
$('#qual').css('display','none');
return;
}
var item2 = '<div class="fn_menu_title pointer"><span>Choose quality</span></div><ul class="fn_menu">';
for (i=0; i < menu[indx].color[indxc].quality.length; i++){
item2 += '<li><span class="pointer search_link" searchkey="'+ leString +' xdz'+ menu[indx].color[indxc].quality[i].wert +'">' + menu[indx].color[indxc].quality[i].wert + '</span></li>';
}
$("#qual").html(item2+'</ul>').fadeIn();
$("#qual").menuFlip();
});
答案 3 :(得分:0)
我发现了自己的错误。谢谢你@Devang Rathod ......这是主人提示:)
var item = '<div class="fn_menu_title pointer risch"><span>Choose color</span></div><ul class="fn_menu">';
for (g=0; g < menu[indx].color.length; g++){
item += '<li><span class="pointer search_link" searchkey="'+ leString +' xdz'+ menu[indx].wert + ' xdz'+ menu[indx].color[g].farbe +'" id="'+[g]+'">' + menu[indx].color[g].farbe + '</span></li>';
}
更改为此
var item = '<div class="fn_menu_title pointer"><span>Choose color</span></div><ul class="fn_menu">';
for (g=0; g < menu[indx].color.length; g++){
item += '<li><span class="pointer search_link risch" searchkey="'+ leString +' xdz'+ menu[indx].wert + ' xdz'+ menu[indx].color[g].farbe +'" id="'+[g]+'">' + menu[indx].color[g].farbe + '</span></li>';
}
<。> .risch是错误的HTML元素