2010-12-31 13 views
7

मैं समय से आगे माफी माँगता हूँ अगर यह एक सरल सवाल है, मैं इस जावास्क्रिप्ट कोड है:jQuery div दिखा और फिर गायब

$(document).ready(function() { 
    $("#results").hide(); 

    var html = $.ajax({ url: "ajax.php?db_list=get", async: false}).responseText; 

    $("#submit").click(function() { 
     $("#results").show(); 
    }); 
}); 

मैं एक बटन है कि इस दिखता है:

<fieldset class="action"> 
     <button name="submit" id="submit">Submit</button> 
</fieldset> 

जब मैं सबमिट बटन पर क्लिक करता हूं, मैं परिणाम div को दिखाना चाहता था और वहां रहना चाहता था, लेकिन क्रोम में यह पॉप अप हो जाता है और फिर तुरंत गायब हो जाता है, क्या यह मेरे दस्तावेज़ के शीर्ष पर छुपा() फ़ंक्शन के कारण है?

धन्यवाद!

उत्तर

15

... क्या यह मेरे दस्तावेज़ के शीर्ष पर छुपा() फ़ंक्शन के कारण है?

शायद। मुझे लगता है कि पृष्ठ ताज़ा है। यदि आप इसे नहीं चाहते हैं, तो हैंडलर में return false; का उपयोग करें।

$("#submit").click(function() { 
    $("#results").show(); 
    return false; 
}); 

या event.preventDefault()

$("#submit").click(function (event) { 
    $("#results").show(); 
    event.preventDefault(); 
}); 
+0

हाँ धन्यवाद, यह समस्या थी, झूठी वापसी div को खोलती है, –

+1

धन्यवाद, झूठी वापसी मेरे लिए चाल थी (मेरा div बहुत जल्दी दिखाएगा, फिर छुपाएं ... मैं टॉगल का उपयोग कर रहा था ())। यह क्यों है और झूठी वापसी क्यों ठीक करती है? – DnfD

1

अपने परिणामों को शुरू में सीएसएस

/* CSS */ 
#results { 
    display: none; 
} 

सुनिश्चित नहीं हैं कि तुम क्यों जिस तरह से आप $ .ajax का उपयोग करना चाहिए चारों ओर कूद रहे हैं के माध्यम से देने के लिए सेट है। यदि यह एक GET अनुरोध है तो $ .get का उपयोग करें ... .live के साथ बाध्य करें क्योंकि यह बेहतर है :)। यह async हो क्योंकि आप नहीं चाहते कि आपके सर्वर में कोई त्रुटि के मामले में फांसी चाहते हैं ...

$(document).ready(function() { 
    $('#submit').live('click', function(){ 
    $.get('ajax.php?db_list=get', function(data){ 
     $('#results').html(data); 
     $('#results').show(); 
     return false; 
    }); 
    }); 
}); 
+0

यह वास्तव में ऐसी स्थिति नहीं है जहां '.live()' का उपयोग किया जाना चाहिए। पेज लोड पर उपलब्ध एक तत्व पर एक हैंडलर के लिए, आपको सीधे बांधना चाहिए। – user113716

+0

जिस तरह से मैंने सवाल पढ़ा, मैंने सोचा कि वह इस सामग्री को AJAX के माध्यम से किसी अन्य पृष्ठ पर लोड कर रहा था, इस मामले में। लाइव आवश्यक है – sethvargo

+0

आह, अब मैं देखता हूं। मैं व्यक्तिगत रूप से अभी भी उस स्थिति में 'लाइव() 'का उपयोग नहीं करता, लेकिन यह एक दृष्टिकोण होगा। आपका जवाब अब मुझे अधिक समझ में आता है। : ओ) – user113716

-1

के बजाय सबमिट करते हैं, इस कोड को

<input id='submitMe' type = 'button' value = 'Submit Me' /> 

अभी सेवा का उपयोग आप की जरूरत नहीं है विवरण झूठा है; या event.preventDefault(); आपके जावास्क्रिप्ट

+0

संयोग से, '<इनपुट प्रकार =" बटन ">' "को

संबंधित मुद्दे