दिलचस्प पोस्ट
बाध्यकारी एम- <अप> / एम- <डाउन> इमैक में 23.1.1 क्यों सी # संकलक emit Activator.CreativeInstance एक नई () बाधा के साथ एक सामान्य प्रकार के साथ नए फोन कर जब? मंद वी के रूप में स्ट्रिंग () और मंद v () स्ट्रिंग के रूप में क्या अंतर है? प्रोग्रामेटिक रूप से एक वैश्विक (मॉड्यूल) वैरिएबल कैसे सेट करें? विंडोज के लिए उद्देश्य सी आदेश दिया गया कुंजियों के साथ एनएसडिएशन Source.id और target.id के बीच मानचित्रण प्राप्त करने के लिए मर्ज..आउटपुट का उपयोग करना PHP में mysql_ * फ़ंक्शन का उपयोग क्यों नहीं किया जाना चाहिए? एमएस एक्सेस टेबल पर डेटा निर्यात करने के लिए एक्सेल VBA का उपयोग करना क्या R_X86_64_32S और R_X86_64_64 पुनर्स्थापन मतलब क्या है? एसक्यूएल – कोयला और ISNULL के बीच का अंतर? चेरी-चुने-चुने कई कमान कैसे करें पिक्चरबॉक्स PaintEvent अन्य विधि के साथ मैं एक कस्टम सॉर्ट नियम को एक WPF DataGrid पर कैसे लागू कर सकता / सकती हूं? चयन 2 लटकती लेकिन उपयोगकर्ता द्वारा नए मानों की अनुमति है?

मैं 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();