函数变量中的jquery函数无法识别

时间:2013-03-05 10:38:15

标签: function variables click jquery

我有这两个函数(函数函数),但第二个函数没有触发,因为似乎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();
    });
});

4 个答案:

答案 0 :(得分:2)

在Jquery中不推荐使用

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元素