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

问题描述 投票:0回答:4

我有这两个函数(函数函数),但第二个函数没有触发,因为似乎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();
    });
});
function variables click jquery
4个回答
2
投票

qazxsw poi在Jquery中被弃用,所以你可以改用qazxsw poi,例如:

并尝试在第二个功能内live()

on()

1
投票

你可以这样做:

alert

把它放在外面并这样做:

$(".risch").on('click',function(){
   alert($(this).attr("id"));
});

你需要$(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它自己,因为这是页面中所有元素的父亲。


0
投票

我发现了自己的错误。谢谢@Devang Rathod ......这是大师提示:)

closest existing parent

}

改变了这个

document

.risch是错误的HTML元素


0
投票

只需从函数内部删除click函数并将其写在外面,这应该可以工作。不推荐使用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>'; } ..

你的问题是..你点击事件里面有点击事件..所以要点击live点击事件你必须点击on这反过来是不可能的,因为你不能一次点击两次...保持单独..现在文档可以找到每个点击事件并相应地触发...所以它的工作原理

.risch
© www.soinside.com 2019 - 2024. All rights reserved.