HTML टैग <a> href और कामकाज दोनों को जोड़ना चाहता है


123

मैं HTML टैग के बारे में पूछना चाहता हूं

<a href="www.mysite.com" onClick="javascript.function();">Item</a>

इसे href और onClick के साथ काम करने वाला टैग कैसे बनाया जाए ? (पहले क्लिक करें फिर href पर चलें)

जवाबों:


232

मामूली सिंटैक्स परिवर्तन के साथ आपके पास पहले से ही आपकी क्या जरूरत है:

<a href="www.mysite.com" onclick="return theFunction();">Item</a>

<script type="text/javascript">
    function theFunction () {
        // return true or false, depending on whether you want to allow the `href` property to follow through or not
    }
</script>

<a>टैग के गुणों onclickऔर hrefगुणों के डिफ़ॉल्ट व्यवहार को निष्पादित करना है onclick, फिर hrefजब तक onclickवापसी नहीं होती है , तब तक falseघटना को रद्द करें (या घटना को रोका नहीं गया)


क्या तत्व के साथ ऐसा करने का एक तरीका भी है ।addEventListener फ़ंक्शन?
ईक्वा

4
मेरे लिए काम नहीं करता है, जब तक कि मैं href="#"एक वास्तविक URL के बजाय वहां नहीं डालूंगा ।

मैं लारवेल फ्रेमवर्क का उपयोग कर रहा हूं, इसलिए मेरे ब्लेड दृश्य में मैंने इसे शामिल किया है, यह काम नहीं कर रहा है, क्या किसी ने लार्वा के साथ यह कोशिश की है?
वजिरा प्रबुद्धका

यह समाधान काम नहीं कर रहा है यदि मेरे पास href में mvc कंट्रोलर में कोई एक्शन विधि है। क्या कोई मदद कर सकता है?
धरापेलटेल

10

JQuery का उपयोग करें । आपको clickईवेंट को कैप्चर करने और फिर वेबसाइट पर जाने की आवश्यकता है।

$("#myHref").on('click', function() {
  alert("inside onclick");
  window.location = "http://www.google.com";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="myHref">Click me</a>


11
मैं किसी भी जावास्क्रिप्ट फ्रेमवर्क का उपयोग नहीं करूंगा। लेकिन आपके उत्तर के लिए धन्यवाद

7
ऊपर एक वास्तविक लिंक नहीं है। इसे एक नए टैब में नहीं खोला जा सकता है और यह बहुत बुरा अभ्यास है। यदि किसी चीज को नए टैब में खोला जा सकता है (ना ही यूआरएल है) हमेशा एक सार्थक hrefविशेषता जोड़ें ।
नक्स

2

HTML के बाद इस उपयोग को प्राप्त करने के लिए:

<a href="www.mysite.com" onclick="make(event)">Item</a>

<script>
    function make(e) {
        // ...  your function code
        // e.preventDefault();   // use this to NOT go to href site
    }
</script>

यहाँ काम कर रहा उदाहरण है


क्रोम में मेरे लिए यह काम करता है, हालांकि सफारी फ़ंक्शन को चलाने के लिए लगता है, लेकिन href नहीं ... किसी भी तरह का सक्सेशन?
बेन

@ जब मैंने जेएस के बिना फिडल पर परीक्षण किया - केवल शुद्ध एचटीएमएल: <a href="http://example.com" >Item</a>और क्रोम में मैं इस लिंक को चलाने के लिए पेज को अनुमति देने के लिए कुछ संदेश देखता हूं (क्रोम यूआरएल बार के अंत में चेतावनी)। कंसोल में सफारी में मैं warrning देखें: [अवरुद्ध] पर पेज fiddle.jshell.net/_display से असुरक्षित सामग्री प्रदर्शित करने के लिए अनुमति नहीं थी example.com - तो शायद यह कुछ सुरक्षा मुद्दा है (केवल बेला पर?)
कामिल Kiełczewski

1

कोई jQuery की जरूरत है।

कुछ लोग कहते हैं कि प्रयोग onclickकरना बुरा व्यवहार है ...

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

<a id="myButton" href="http://google.com">Click me!</a>
<script>
    window.addEventListener("load", () => {
        document.querySelector("#myButton").addEventListener("click", e => {
            alert("Clicked!");
            // Can also cancel the event and manually navigate
            // e.preventDefault();
            // window.location = e.target.href;
        });
    });
</script>

-1

के ng-clickस्थान पर उपयोग करें onclick। और इसके रूप में सरल:

<a href="www.mysite.com" ng-click="return theFunction();">Item</a>

<script type="text/javascript">
function theFunction () {
    // return true or false, depending on whether you want to allow 
    // the`href` property to follow through or not
 }
</script>

केवल AngularJS में
Corrodian
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.