IE8

2010-08-19 13 views
5

में राफेल का उपयोग कर टेक्स्ट लिंक मुझे राफेल का उपयोग करके IE8 में काम करने के लिए एक साधारण टेक्स्ट लिंक प्राप्त करने में बहुत परेशानी हो रही है। मुझे वह पाठ चाहिए जो सामान्य लिंक की तरह व्यवहार करता हो। मैंने नीचे कुछ कोड शामिल किया है जिसके साथ मैं खेल रहा हूं। पत्र के बीच अंतराल पर क्लिक कुछ भी नहीं है -IE8

  • मंडराना फ़ंक्शन का उपयोग करके एक हाथ करने के लिए बदल सकते हैं और document.body.cursor
  • क्लिक समारोह केवल काम करता है जब वास्तविक पाठ पिक्सल पर क्लिक करने के लिए कर्सर समझे
  • ऊपर समस्या भी मंडराना प्रभावित करता

मैं पाठ, एक आयत/बाउंडिंग बॉक्स के पीछे कुछ तत्व जोड़ने के लिए, माउस को संभालने की जरूरत है? कोई विचार? यह समस्या केवल आईई 8 में है, जैसा कि आप जानते हैं, राफेल के माध्यम से वीएमएल का उपयोग करता है।

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico"> 
    <script type="text/javascript" src="js/jquery-1.4.2.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.8.4.min.js"></script> 
    <script type="text/javascript" src="js/raphael-min.js" charset="utf-8"></script> 
    <script type="text/javascript"> 
    window.onload = function() { 

    // Creates canvas 320 × 200 at 10, 50 
    var paper = Raphael(10, 50, 420, 400); 

    var lbl = paper.text(50, 40, 'test').attr({ 
     "font" : '14px Helvetica, Arial', 
     stroke : "none", 
     fill : '#ffffff', 
     'text-anchor' : 'middle' 
    }); 

    lbl.node.style.display = 'block'; 
    lbl.node.style.cursor = 'pointer'; 

    lbl.click(function() { 
     alert('hi');  }); 

    lbl.hover(function() { 
     document.body.style.cursor = 'hand'; 
    }, function() { 
     document.body.style.cursor = 'default'; 
    }); 

    } 
    </script> 
</head> 
<body style="background-color: #000000;"> 
    <div id="wrapper" style="background-color: #000000;"> </div> 
</body> 
</html> 

उत्तर

10
var lbl = paper.text(50, 40, 'test').attr({ 
    font : '14px Helvetica, Arial', 
    stroke : "none", 
    fill : '#fff' 
}), 
blanket = paper.rect().attr(lbl.getBBox()).attr({ 
    fill: "#000", 
    opacity: 0, 
    cursor: "pointer" 
}).click(function() { alert("hi"); }); 
+0

धन्यवाद दिमित्री जिसने मुझे बहुत मदद की। – ncatnow

+0

अभी भी 2 साल बाद लागू है। –

0

आप इस तरह अपने तत्व के लिए एक वर्ग जोड़ सकते हैं (IE8 में काम नहीं करता है):

lbl.node.className.baseVal += "linked_label"; 

इस तरह एक स्टाइलशीट के साथ:

कोड यह

.linked_label:hover { 
    cursor: pointer; 
    text-decoration:underline; 
} 

साथ ही एक जावास्क्रिप्ट हुक अगर आप चाहें