2017-03-01 8 views
6

मैंने कोशिश की:फ़ैंटॉमजेएस के माध्यम से माउसडाउन को कैसे ट्रिगर करें?

var clickEvent = document.createEvent('MouseEvents'); 
clickEvent.initEvent("mousedown", true, true); 
jQuery('.left-rail-facets .facet-list .facet.CS .suggestion[data-value="B"] a')[0].dispatchEvent(clickEvent); 

लेकिन यह सिर्फ साइट पर कार्यवाही प्रारंभ करने के विफल रहता है। कोई त्रुटि वापस नहीं आई।

+0

कृपया, दिखाने के लिए अपने कोड का एक व्यापक नमूने (आप नहीं सही जगह में इस नमूने का उपयोग किया जा सकता है)। साथ ही: क्या आप इस कोड को चलाने के समय तत्व बिल्कुल मौजूद हैं? क्या आपने स्क्रीनशॉट के साथ कोड/चेक किया है? इसके अलावा: प्रश्न में उपयोग किए जाने वाले फैंटॉमजेएस संस्करण और पर्यावरण को बताने में उपयोगी है। – Vaviloff

उत्तर

1

आप document.createEvent और event.initMouseEvent उपयोग करने के लिए की आवश्यकता होगी:

var element = document.querySelector('.left-rail-facets .facet-list .facet.CS .suggestion[data-value="B"] a'); 
//or var element = jQuery('.left-rail-facets .facet-list .facet.CS .suggestion[data-value="B"] a')[0]; 
var elementRect = element.getBoundingClientRect(); 
var mouseEvent = document.createEvent('MouseEvents'); 
mouseEvent.initMouseEvent('mousedown', true, true, window, 0, elementRect.left, elementRect.top); 
4

यह कैसे आप प्रोग्राम एक "mousedown" घटना के साथ एक डोम तत्व पर एक क्लिक गति प्रदान करता है। आपके प्रश्न का उत्तर के लिए, आपको अपने स्रोत कोड में दो बातें करने की जरूरत है: क्लिक का पता लगाने के

घटना श्रोताओं

और

अपने jQuery पंक्ति में अपने कई चयनकर्ताओं के बीच अल्पविराम ।

कृपया नीचे स्निपेट चलाएं, जो संशोधित jQuery लाइन और श्रोताओं को सही तरीके से चल रहा है।

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
    <script> 
 
    $(document).ready(function() { 
 
     // You must have event listeners to see if anything is actually happening. For example, here I will add only a listener to the first element: 
 
     jQuery(".left-rail-facets")[0].addEventListener('mousedown', function(e) { 
 
     jQuery(".left-rail-facets")[0].innerHTML = "I have received a click."; 
 
     }, false); 
 
     // Now here is the code from your question. Please see how I have commas instead of spaces in my jQuery selector: 
 
     var clickEvent = document.createEvent('MouseEvents'); 
 
    clickEvent.initEvent('mousedown', true, true); 
 
     jQuery('.left-rail-facets,.facet-list,.facet.CS,.suggestion[data-value="B"],a')[0].dispatchEvent(clickEvent); 
 
    }); 
 
    </script> 
 
</head> 
 

 
<body> 
 

 
    <h1>I am a Webpage</h1> 
 

 
    <p class="left-rail-facets">I have not received a click.</p> 
 
    <p class="facet-list">I have not received a click.</p> 
 
    <facet class="CS">I have not received a click.</facet> 
 
    <p class="suggestion" data-value="B">I have not received a click.</p> 
 
    <a href="url">I have not received a click.</a> 
 

 
</body> 
 

 
</html>

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