2010-10-29 15 views
14

Mvc Uygulamamda jQuery ile birlikte SVG kullanıyorum. Sayfamda bir dizi dikdörtgenler çiziyorum ve yapmak istediklerim, her bir dikdörtgen için bir tıklama veya fare ekleme olayı eklemektir. şimdiye kadar, böyle bir şey denedim:SVG dikdörtgeni için tıklayın olay

$("rect[id='Y6']").attr('onclick', function() { alert("Hello!") }); 

ve

$("rect[id='Y6']").live('click', function() {  
    alert("Hello!"); 
}; 

Ama bu olayların ne yazık ki hiçbiri gerçekten bu kontrol için çalıştı. Bunu nasıl yapacağını bilen var mı?

DÜZENLEME: Ben aşağıda kullanıyorum javascript kodu ekliyorum

:

<script type="text/javascript"> 
    /*function resetSize(svg, width, height) { 
     svg.configure({ width: width || $(svg._container).width(), 
      height: height || $(svg._container).height() 
     }); 
    }*/ 
    function onLoad(svg, error) { 
     //svg.text(10, 20, error || 'Loaded into ' + this.id); 
     //resetSize(svg, null, null); //'100%', '100%'); 
    } 

    $(function() { 
     $('#layout').svg({}); 

     var svg = $('#layout').svg('get'); 
     svg.load('<%= Url.Action("Layout", new{ id = Model.Id }) %>', { //<%= Url.Content("~/media/svg/lion.xml") %>', { 
      addTo: false, 
      changeSize: false, 
      onLoad: onLoad 
     }); 
    });  

$('rect#Y6').click(function(){ 
    alert('hello'); 
}); 

</script> 

dikdörtgenler bir svg resimden yüklenir.

cevap

15

Kodunuz click işleyici onLoad işlevinin bir parçası olması gerekiyor eklemek - o değişikliği it works for me ile.

+1

Teşekkürler Robert, önerdiğin gibi yazmaya çalıştıktan sonra işe yaradı! Çok teşekkürler! – Hallaghan

+0

Diğerleri için, bir mobil tıklama etkinliğiyle mücadele ediyordum ve $ (document) .on ('click touch', '.button', function() {...}); –

+0

Üçgenlere karşı ayrımcılık ile çalışıyor. olduğunu. – geotheory

2

bu deneyin:

$('rect#Y6').click(function(){ 
    alert('hello'); 
}); 
+0

Ya işe yaramadı Ken. Yardımına minnettarım. Kontrol şöyle oldu: Hallaghan

+0

@ Hallaghan, şu şekilde görünüyor: http: //jsfiddle.net/YcV3c/. –

+0

Şimdi, bu oldukça garip. Firebug'ı kullanarak sayfayı yüklediğimde tıklama etkinliğini doğru bir şekilde girdiğimi fark ettim. Ancak dikdörtgeni tıkladıktan sonra, hiçbir şey gerçekten gerçekleşmez ve olay asla kovulmaz. Herhangi bir fikrin var mı? DÜZENLEME: JQuery kodumu görmek veya dosyalarım hakkında herhangi bir bilgi almak isterseniz, onları yorumuma ekleyeceğim. – Hallaghan

İlgili konular