दिलचस्प पोस्ट
एक संकेतक "dereferencing" क्या मतलब है? अजगर 3 में स्थान के बिना प्रिंट करें गिट में एक शाखा से हटाना विजुअल स्टूडियो अजीब काम कर रहा है मैं यह कैसे तय करुं? मैं अपने कंटेनर के निचले भाग में अपने div को किस प्रकार रख सकता हूं? एकल सरणी में बहुआयामी सरणी परिवर्तित करें फ़ाइलों / निर्देशिकाओं की निगरानी सामग्री? PHP foreach पाश कुंजी मान फ़ॉर्म को पृष्ठ रिफ्रेश के बिना PHP के लिए AJAX पासिंग डेटा के साथ सबमिट करें jqGrid गतिशील रूप से ग्रिड पेजर आईडी को हल करें? अपवाद पर सी ++ प्रदर्शित स्टैक ट्रेस जेएस बंडलर OSXAdapter का उपयोग करने के कारण अंतराल या समाप्त करने के लिए आवेदन करता है एक async विधि के अंत में, क्या मुझे वापस आना चाहिए या इंतजार करना चाहिए? PHP के माध्यम से एक फेसबुक प्रशंसक पृष्ठ पर पोस्ट करने के लिए सरल उदाहरण? एसक्यूएल: केवल शून्य मानों के साथ कॉलम का चयन करें

मैं jQuery के माध्यम से एक एंकर क्लिक कैसे अनुकरण कर सकता हूं?

JQuery के माध्यम से एक लंगर क्लिक करने के लिए मुझे एक समस्या है: पहली बार जब मैं इनपुट बटन पर क्लिक करता हूं, लेकिन दूसरी या तीसरी बार क्यों नहीं होता?

यहां मेरा कोड है:

<input onclick="$('#thickboxId').click();" type="button" value="Click me" /> <a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a> 

यह हमेशा काम करता है जब मैं सीधे लिंक पर क्लिक करता हूं, लेकिन न कि मैं इनपुट बटन के माध्यम से मोटीबॉक्स को सक्रिय करने का प्रयास करता हूं। यह एफएफ में है क्रोम के लिए हर बार ऐसा लगता है कोई संकेत?

वेब के समाधान से एकत्रित समाधान "मैं jQuery के माध्यम से एक एंकर क्लिक कैसे अनुकरण कर सकता हूं?"

इस तरह से अपने jQuery कॉल इनलाइनिंग से बचने की कोशिश करें click ईवेंट पर बाइंड करने के लिए पृष्ठ के शीर्ष पर एक स्क्रिप्ट टैग डालें:

 <script type="text/javascript"> $(function(){ $('#thickboxButton').click(function(){ $('#thickboxId').click(); }); }); </script> <input id="thickboxButton" type="button" value="Click me"> <a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a> 

संपादित करें:

यदि आप किसी उपयोगकर्ता को लिंक पर क्लिक करने के लिए शारीरिक रूप से अनुकरण करने का प्रयास कर रहे हैं, तो मुझे विश्वास नहीं है कि यह संभव है। जावास्क्रिप्ट में window.location को बदलने के लिए बटन का click ईवेंट अपडेट करना होगा:

 <script type="text/javascript"> $(function(){ $('#thickboxButton').click(function(){ window.location = $('#thickboxId').attr('href'); }); }); </script> 

2 संपादित करें:

अब मुझे पता है कि Thickbox एक कस्टम jQuery UI विजेट है, मुझे यहां दिए गए निर्देश मिले हैं :

निर्देश:

  • एक लिंक तत्व बनाएं ( <a href> )
  • मोटीबॉक्स के मूल्य के साथ एक वर्ग विशेषता को लिंक दें ( class="thickbox" )
  • लिंक के href विशेषता में निम्नलिखित एंकर जोड़ें: #TB_inline
  • #TB_inline एंकर पर निम्न क्वेरी स्ट्रिंग जोड़ने के बाद href विशेषता में:

    ? ऊंचाई = 300 और चौड़ाई = 300 और inlineId = myOnPageContent

  • तदनुसार क्वेरी में ऊँचाई, चौड़ाई, और इनलाइन आईडी को परिवर्तित करें (इनलाइनआईड तत्व का आईडी मान है जिसमें उस सामग्री को शामिल किया गया है जिसे आप मोटापा में दिखाना चाहते हैं

  • वैकल्पिक रूप से आप क्वेरी स्ट्रिंग के लिए modal = true जोड़ सकते हैं (जैसे #TB_inline?height=155&width=300&inlineId=hiddenModalContent&modal=true ) ताकि एक मोटापा बंद करने से thickbox के भीतर से tb_remove() फ़ंक्शन को कॉल करने की आवश्यकता होगी। छिपी हुई मॉडल सामग्री उदाहरण देखें, जहां आपको हाईबॉक्स को बंद करने के लिए हाँ या नहीं क्लिक करना होगा।

मेरे लिए क्या काम था:

 $('a.mylink')[0].click() 

मैंने हाल ही में पाया है कि कैसे jQuery के माध्यम से माउस क्लिक घटना ट्रिगर करने के लिए।

  <script type="text/javascript"> var a = $('.path > .to > .element > a')[0]; var e = document.createEvent('MouseEvents'); e.initEvent( 'click', true, true ); a.dispatchEvent(e); </script> 

यह दृष्टिकोण फ़ायरफ़ॉक्स, क्रोम और IE पर काम करता है। उम्मीद है कि यह किसी को मदद करता है:

 var comp = document.getElementById('yourCompId'); try { //in firefox comp.click(); return; } catch(ex) {} try { // in chrome if(document.createEvent) { var e = document.createEvent('MouseEvents'); e.initEvent( 'click', true, true ); comp.dispatchEvent(e); return; } } catch(ex) {} try { // in IE if(document.createEventObject) { var evObj = document.createEventObject(); comp.fireEvent("onclick", evObj); return; } } catch(ex) {} 

प्रश्न शीर्षक कहते हैं, "मैं jQuery में एक एंकर क्लिक कैसे अनुकरण कर सकता हूँ?"। ठीक है, आप "ट्रिगर" या "ट्रिगरहाण्डलर" विधियों का उपयोग कर सकते हैं, जैसे:

 <script type="text/javascript" src="path/to/jquery.js"></script> <script type="text/javascript" src="path/to/thickbox.js"></script> <script type="text/javascript"> $(function() { $('#btn').click(function() { $('#thickboxId').triggerHandler('click'); }) }) </script> ... <input id="btn" type="button" value="Click me"> <a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a> 

इस वास्तविक स्क्रिप्ट का परीक्षण नहीं किया गया है, लेकिन मैंने पहले एट अल को trigger किया है, और उन्होंने a'ight काम किया है

अद्यतन करें
triggerHandler वास्तव में ऐसा नहीं करता जो ओ.पी. चाहता है मुझे लगता है कि 1421 9 68 इस प्रश्न का सबसे अच्छा जवाब प्रदान करता है।

मैं सेलेनियम एपीआई को देखने के लिए सुझाव देता हूं कि वे एक ब्राउज़र-संगत तरीके से एक तत्व पर एक क्लिक कैसे ट्रिगर करते हैं:

  • सेलेनियम-browserbot.js

BrowserBot.prototype.triggerMouseEvent फ़ंक्शन को BrowserBot.prototype.triggerMouseEvent

हालांकि यह बहुत पुराना सवाल है कि मुझे इस कार्य को संभालने में कुछ आसान लगता है। यह jquery प्लगइन jquery UI टीम द्वारा विकसित अनुकरण कहा जाता है। आप इसे jquery के बाद शामिल कर सकते हैं और फिर आप ऐसा कुछ कर सकते हैं

 <a href="http://stackoverflow.com/"></a> $('a').simulate('click'); 

क्रोम, फ़ायरफ़ॉक्स, ओपेरा और IE10 में ठीक काम करता है। आप इसे https://github.com/eduardolundgren/jquery-simulate/blob/master/jquery.simulate.js से डाउनलोड कर सकते हैं

मेरा मानना ​​है कि आप इसका उपयोग कर सकते हैं:

 $('#yourLink').bind('click', function() { //Do something over here }); $('#yourLink').trigger('click'); 

यह वास्तव में उस पर क्लिक किए बिना, क्लिक फ़ंक्शन को आसानी से ट्रिगर करेगा।

क्या आपको नकली एंकर क्लिक करने की आवश्यकता है? मोटीबॉक्स साइट से:

मोटापा एक लिंक तत्व, इनपुट तत्व (आमतौर पर एक बटन), और क्षेत्र तत्व (छवि मानचित्र) से लागू किया जा सकता है।

यदि वह स्वीकार्य है तो इनपुट के रूप में मोटीबॉक्स वर्ग को लगाया जाना आसान होना चाहिए:

 <input id="thickboxButton" type="button" class="thickbox" value="Click me"> 

यदि नहीं, तो मैं फ़ायरबॉग का उपयोग करने और एंकर तत्व के ऑनक्लिक विधि में एक ब्रेकपॉइंट को रखने की सलाह देता हूं, यह देखने के लिए कि क्या यह केवल पहली क्लिक पर ट्रिगर किया गया है।

संपादित करें:

ठीक है, मुझे अपने लिए प्रयास करना पड़ा और मेरे लिए बिल्कुल भी आपका कोड क्रोम और फ़ायरफ़ॉक्स में काम किया था:

 <html> <head> <link rel="stylesheet" href="thickbox.css" type="text/css" media="screen" /> </head> <body> <script src="jquery-latest.pack.js" type="text/javascript"></script> <script src="thickbox.js" type="text/javascript"></script> <input onclick="$('#thickboxId').click();" type="button" value="Click me"> <a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a> </body> </html> 

विंडो पॉप अप कोई फर्क नहीं पड़ता अगर मैं इनपुट या एंकर तत्व पर क्लिक करता हूं यदि उपरोक्त कोड आपके लिए काम करता है, तो मेरा सुझाव है कि आपकी त्रुटि कहीं और है और आप समस्या को अलग करने का प्रयास करते हैं।

एक और संभवतः यह है कि हम jquery / thickbox के विभिन्न संस्करणों का उपयोग कर रहे हैं। मैं मोटीबॉक्स पेज से जो उपयोग करता हूं – जेपीयर 1.3.2 और मोटाबॉक्स 3.1

आप jQuery या HTML पृष्ठ कोड के माध्यम से एक फार्म बना सकते हैं जो आपके लिंक href की नकल करता है:

<a id="anchor_link" href="somepath.php">click here</a>.

 var link = $('#anchor_link').attr('href'); $('body').append('<form id="new_form" action="'+link+'"></form>'); $('#new_form').submit(); 

ज्यूर की स्क्रिप्ट का उपयोग करके मैंने इसे बनाया, जितना चाहें उतने तत्वों को "क्लिक" करने के लिए।
मैंने इसे 1600+ वस्तुओं पर Google रीडर का इस्तेमाल किया और यह पूरी तरह से काम किया (फ़ायरफ़ॉक्स में)!

 var e = document.createEvent('MouseEvents'); e.initEvent( 'click', true, true ); $(selector).each(function(){this.dispatchEvent(e);}); 

किसी पृष्ठ पर लैंडिंग करते समय एक एंकर पर एक क्लिक अनुकरण करने के लिए, मैं सिर्फ $(document).ready. में स्क्रॉलटॉप संपत्ति को चेतन करने के लिए jQuery का उपयोग करता हूं $(document).ready. जटिल ट्रिगर की कोई आवश्यकता नहीं है, और यह IE 6 और हर दूसरे ब्राउज़र पर काम करता है।

अगर आपको JQuery का उपयोग करने की आवश्यकता नहीं है, जैसा कि मैं नहीं करता। मुझे .click() के क्रॉस ब्राउज़र फ़ंक के साथ समस्याएं हैं। तो मैं इसका उपयोग करता हूं:

 eval(document.getElementById('someid').href) 

जावास्क्रिप्ट में आप ऐसा कर सकते हैं

 function submitRequest(buttonId) { if (document.getElementById(buttonId) == null || document.getElementById(buttonId) == undefined) { return; } if (document.getElementById(buttonId).dispatchEvent) { var e = document.createEvent("MouseEvents"); e.initEvent("click", true, true); document.getElementById(buttonId).dispatchEvent(e); } else { document.getElementById(buttonId).click(); } } 

और आप इसका इस्तेमाल कर सकते हैं

 submitRequest("target-element-id"); 

JQuery('#left').triggerHandler('click'); फ़ायरफ़ॉक्स और आईई 7 में ठीक काम करता है मैंने इसे अन्य ब्राउज़रों पर परीक्षण नहीं किया है

यदि स्वत: उपयोगकर्ता क्लिक को चालू करना चाहते हैं तो निम्न कार्य करें:

 window.setInterval(function() { $('#left').triggerHandler('click'); }, 1000); 

यह "छुपा इनपुट (फ़ाइल) तत्व" पर क्लिक करने के लिए एंड्रॉइड मूल ब्राउज़र पर काम नहीं करता है:

 $('a#swaswararedirectlink')[0].click(); 

लेकिन यह काम करता है:

 $("#input-file").show(); $("#input-file")[0].click(); $("#input-file").hide(); 

JQuery UI स्पिनर के साथ यूनिट परीक्षणों में एक 'क्लिक' अनुकरण करने की कोशिश में मुझे काम करने के पिछले उत्तर में से कोई भी नहीं मिला। विशेष रूप से, मैं डाउन एरो को चुनने के 'स्पिन' का अनुकरण करने की कोशिश कर रहा था। मैंने jQuery UI स्पिनर इकाई परीक्षणों को देखा और वे निम्नलिखित विधि का उपयोग करते हैं, जो मेरे लिए काम करती हैं:

 element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();