2009-10-01 22 views
6

पर काम नहीं कर रहा है मैं अभी भी मेरे साथ जेवीरी के लिए इतना नया हूं।JQuery क्लिक करें() एचटीएमएल

मैं jquery, php, और mysql डेटाबेस का उपयोग कर go-moku गेम बनाने का प्रयास कर रहा हूं। मेरे पास एक AJAX फ़ंक्शन है जो आवश्यक होने पर प्रत्येक बोर्ड को बोर्ड अपडेट करता है।

var turnCount = -1; 
setInterval(function(){ 
    $.get('includes/boardControl.php',{turn: turnCount }, function(data){ 
     if(data != "") 
     { $("#board").html(data); 
      turnCount = $("#turnCount").text(); 
      $("#turnCount").text("") 
     } 
    }); 

}, 1000); 

यह सिर्फ ठीक काम करता है, यह डेटाबेस की जाँच करता है देखने के लिए अगर बारी वृद्धि की गई है और बोर्ड की जगह अगर यह नहीं है। अब मैं जो अंततः करना चाहता हूं वह एक क्लिक फ़ंक्शन तैयार करता है जो बोर्ड को अपडेट करने और डेटाबेस में गिनती करने के लिए अजाक्स का उपयोग करता है। मैं किसी भी तरह से चयनकर्ता का उपयोग करने की उम्मीद कर रहा हूं यह निर्धारित करता हूं कि मैं किस वर्ग पर क्लिक कर रहा हूं।

मेरे पास कई प्रश्न हैं।

1) मेरे क्लिक समारोह अभी

$(document).ready(function() { 
    $("td > img").click(function(){ 
     alert("clicked"); 
    }); 
}); 

अभी के रूप में यह पिछले समारोह के साथ बनाया मेज पर एक अतिरिक्त परीक्षण मेज मैं html में लिखा है पर काम करता है, लेकिन नहीं है। मैं क्या गलत कर रहा हूं?

2) मैंने अभी तक ट्यूटोरियल को निर्देश दिया है कि मुझे निम्नलिखित तरीके से कोड लिखना चाहिए।

$(document).ready(function() { 
    //code here 
}); 

जब मैंने कल रात एक प्रश्न पूछा, तो मुझे बताया गया कि मैं अपने कार्यों के साथ जटिल चीजों से अधिक था। तो मुझे दस्तावेज़ का उपयोग कब करना चाहिए। पहले से ही फ़ंक्शन और कब नहीं? और क्या मेरी सभी स्क्रिप्ट को एक दस्तावेज़ में रखना ठीक है। पहले से ही फ़ंक्शन या मेरे पास एकाधिक होना चाहिए?

3) एक बार मैं मैं एक एक्स भेजने के लिए आशा करता हूं काम करने के लिए क्लिक करें छवि प्राप्त, वाई सर्वर से समन्वय और बोर्ड पर कि इसी स्थान बदल जाते हैं। यह निर्धारित करने के लिए कि निर्देशांक का उपयोग करने के लिए तालिका में कौन सा सेल क्लिक किया गया है, मैं कैसे निर्धारित करूं? (या क्या कोई आसान तरीका है?)

आपकी सभी मदद के लिए अग्रिम धन्यवाद।

उत्तर

15

लगता है आप की तरह

$("td > img").click(function(){ 
       alert("clicked"); 
     }); 

$("td > img").live('click',function(){ 
       alert("clicked"); 
     }); 

को संपादित को बदलने की जरूरत: jQuery 1.9 के लिए और बाद में आप कर सकते हैं:

$("#board").on('click', 'td > img', function(){ 
    // handle click 
}); 
+0

.live उनका कहना है() मेरे लिए समारोह =) –

+5

"लाइव" StackOverflow पर jQuery समस्याओं का एक बड़ा वर्ग का हल है के लिए धन्यवाद काम करता है। जैसे ही आप की तरह एक बयान को देखने के रूप में "मैं अपने एचटीएमएल और एक्स बदल नहीं रह गया काम करता है" यह बहुत संभावना है कि लाइव() आपकी मदद करेगा है। –

+0

हा हा, तो शायद आप अकेले शीर्षक से समस्या को जानते थे। –

4

$(document).ready() समारोह केवल जब पेज के पहली बार लोड आग - क्रम में यह काम कुछ इस तरह की कोशिश करने के लिए:

function bindClicks() { 
    $("td > img").click(function(){ 
     alert("clicked"); 
    }); 
} 

$(document).ready(bindClicks); 

यह आपको क्लिक ईवेंट बाध्य करने के लिए बाद में अगर जरूरत bindClicks() फोन करने की अनुमति देगा एक नई मेज का।

1

1) आप फिर से कर रहे हैं AJAX सामग्री लोड के बाद क्लिक घटना को सक्रिय करना?

$(document).ready फ़ंक्शन पूरी तरह से लोड होने पर ही आग लग जाएगा, लेकिन AJAX कॉल के बाद आग नहीं लगेगी।तो आपको प्रत्येक AJAX कॉल के बाद क्लिक ईवेंट को फिर से तार करने की आवश्यकता होगी:

2) KISS। इसे यथासंभव सरल रखें। यदि आपके पास दस्तावेज़ के अंदर 50+ लाइनें हैं। पहले से ही कथन आप कुछ फ़ंक्शन बनाना चाहते हैं।

3) सबसे अच्छा तरीका यह है, प्रत्येक कक्ष के लिए एक विशिष्ट पहचान प्रदान करेगा और कब्जा है कि क्लिक करें घटना में हो सकता है। फिर आप इसे सर्वर पर भेज सकते हैं और वापसी पर विशिष्ट सेल को अपडेट कर सकते हैं।

$ ("td> img")

मैं फ़ायरबग साथ फ़ायरफ़ॉक्स लोड और जांचें कि आपका वास्तव में पहला मैच हो रही हैं:

1

क्या आप वाकई JQuery मिलान किया जाता है आप क्वेरी कर रहे हैं। आपके निर्माण की दूसरी तालिका में थोड़ा अलग संरचना हो सकती है, तो आप उम्मीद करते हैं और फायरबग आपको सटीक संरचना भी दिखा सकता है।

गुडलक।

+0

में काम करता है संरचना था ठीक, अच्छा सुझाव अभी भी मैं फ़ायरबग की उपयोगिता इस एक ही बात के लिए एक सा पहले निर्धारित। –

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