2009-04-23 7 views
6

दर्ज करें बस सोच रहा है कि कोई व्यक्ति ऐसे तरीके से जानता है जो किसी उपयोगकर्ता को किसी लिंक या टैब पर क्लिक करने के लिए एक फ़ंक्शन चलाने के लिए jquery को तारों में डालता है और एंटर दबाता है।पता लगाएं कि लिंक कब सक्रिय है - या तो क्लिक या टैब द्वारा और

मैं एक लिंक की सक्रियता को रोकना चाहता हूं और पृष्ठ बदलने से पहले एक क्रिया करना चाहता हूं, लेकिन मैं इसे किसी भी मामले में करना चाहता हूं।

उत्तर

9

'क्लिक' घटना दोनों ही मामलों में सक्रिय होंगे, यह आप आप क्या चाहते हो जाएगा:

$('a').click(function(){ 
    alert('perform action here'); 
}); 
+0

यह लिंक का URL कि क्लिक किया गया है प्राप्त करने के लिए संभव है? –

+2

सुनिश्चित करें: चेतावनी ($ (यह) .attr ('href')); – pjesi

+0

या 'this.href;' या, कुछ ब्राउज़रों में, यह .getAttribute ('href'); 'jQuery उस भाग के लिए आवश्यक नहीं है (या नहीं होना चाहिए)। –

1

निम्नलिखित दो लिंक jQuery में होने वाली घटनाओं के बारे में जानकारी प्रदान करते हैं जिन्हें आप संभालना चाहते हैं।

jQuery घटनाक्रम/कुंजी दबाने: http://docs.jquery.com/Events/keypress
jQuery घटनाक्रम/पर क्लिक करें: http://docs.jquery.com/Events/click

2

यह सुंदर है वास्तव में सरल ... तत्व पर एंटर दबाते समय, यह ब्राउज़र में क्लिक के रूप में कार्य करता है। कुछ भी विशेष करने की जरूरत नहीं है।

$('a.links_to_bind').bind('click', function() { 
    /* do your stuff... */ 
    return false; 
}); 

संपादित करें: आप पेज अपने कार्यों पूरा कर रहे हैं के बाद बदलना चाहते हैं, तो आप उस return false को एक सशर्त statemenet जोड़ सकते हैं। की तरह कुछ:

if(everythings_good) { 
    return true; 
} else { 
    return false; 
} 
-1
$('a').keydown(function() { 

return false; // Prevent default action 

}); 

$('a').keyup(function(event){ 

    if(event.keyCode == '13'){ 

      $(this).find('button.mychoice').click(); 

    } 

}); 


// This does the trick for both IE and FF. 
संबंधित मुद्दे