मैं अपनी वेबसाइट के लिए एक बढ़िया रोलडाउन चयन समाधान पर काम कर रहा हूं।
मैंने एक <a name="iwanthereanid" class="popper">Click Here!</a> लिंक बनाया है।
उस पर क्लिक करके मैं एक popup() फ़ंक्शन को कॉल करता हूं।

$(".popper").click(function() {
    popup($(this));
});

popup() फंक्शन में मैंने जांचा कि क्या यह पहले से ही खुला हुआ है? नहीं?
आइए एक डिव बनाते हैं और इसे fillwiththings() द्वारा चीजों से भरते हैं।

function popup(where) 
{
    if (where.hasClass("on")) 
    {
        where.removeClass("on");
        where.next("div").remove();
    }
    else 
    {
        where.addClass("on");
        fillwiththings(where);
    }
}

function selectclose(where)
{
    var nameval = $(this).attr("name");
    var textval = $(this).text();
    where.attr("name", nameval);
    where.text(textval);
    where.removeClass("on");
    where.next("div").remove();
}

function fillwiththings(where, id)
{
    $container = $('<div class="popup"></div>')
    for (i = 0; i < object.length; i++)
    {
        $container.append($('<a name="'+jsonobject[i]["id"]+'">'+jsonobject[i]["name"]+'</a>').bind("click", {where: where}, selectclose()));
    }
}

fillwiththings() में मैं संलग्न <a></a> के साथ एक अन्य फ़ंक्शन को जहां पैरामीटर के साथ बंद करना चाहता हूं, बंद करना चाहता हूं, और ए (यहां क्लिक करें!) टैग के टेक्स्ट और नाम मान को प्रतिस्थापित करना चाहता हूं। लेकिन बंधन विफल रहता है। मुझे क्या याद आया? कृपया इसमें मदद करें।

धन्यवाद।

0
Répás 25 मार्च 2011, 18:39

1 उत्तर

सबसे बढ़िया उत्तर

आप where पैरामीटर को सही तरीके से एक्सेस नहीं कर रहे हैं। ईवेंट डेटा को ईवेंट हैंडलर के पैरामीटर के रूप में पास नहीं किया जाता है, यह ईवेंट ऑब्जेक्ट की एक संपत्ति है:

function selectclose(event) {
    event.data.where
        .attr("name", $(this).attr("name"))
        .text($(this).text())
        .removeClass("on")
        .next("div").remove();
}

दूसरी समस्या यह है कि आप बाइंड करने के लिए selectclose() का वापसी मूल्य पास करते हैं। आपको फ़ंक्शन को सीधे पास करना होगा:

$container.append($(...).bind("click", {where: where}, selectclose));
//                                          no parenthesis ------^
1
Felix Kling 25 मार्च 2011, 18:54