2010-04-03 16 views
11

jQuery for Document.createElementNS() dosyası nedir?document.createElementNS() için jQuery nedir?

function emleGraphicToSvg(aGraphicNode) { 
    var lu = function luf(aPrefix){ 
    switch (aPrefix){ 
     case 'xhtml': return 'http://www.w3.org/1999/xhtml'; 
     case 'math': return 'http://www.w3.org/1998/Math/MathML'; 
     case 'svg': return 'http://www.w3.org/2000/svg'; 
     } 
    return ''; 
    }; 
    var svg = document.evaluate("svg:svg", 
    aGraphicNode, lu, XPathResult.FIRST_ORDERED_NODE_TYPE, null). 
    singleNodeValue; 
    $(svg).children().remove(); 
    rect = document.createElementNS(lu('svg'), "rect"); 
    rect.setAttribute("x", "35"); 
    rect.setAttribute("y", "25"); 
    rect.setAttribute("width", "200"); 
    rect.setAttribute("height", "50"); 
    rect.setAttribute("class", "emleGraphicOutline"); 
    svg.appendChild(rect); 
    } 

kod Emle - Electronic Mathematics Laboratory Equipment JavaScript dosyası emle_lab.js gelen basitleştirilmiş parçasıdır.

Look-Up-Function, luf(), XPath dizgisinde ve createElementNS() adresindeki ad alanı için bir kısaltma adına tam bir başvuruyla eşleşir. Mevcut svg:svg bulunur, kaldırılır ve yeni bir dikdörtgenle değiştirilir.

+0

Ayrıca createElementNS() öğesinin ne yaptığını bilmem gerekiyor. İşte benim svg-edit ilgili soru: http://code.google.com/p/svg-edit/issues/detail?id=574 – marknt15

cevap

2

SVG için, bazı değerlendirme türü projeler için Keith Wood's jquery.svg kullanmıştım.

+3

svg sadece bir örnektir. Jquery.svg svg dışındaki ad alanlarını işlemek için değil varsayalım. JQuery ile, özellikle createElementNS() ile ad alanlarının nasıl işleneceğini arıyorum. –

+0

@CWHolemanII Bunu yapmanın iyi bir yolunu bulamadım. Yine de jQuery etrafında çalışabilir ve bunun gibi createElementNS() ve setAttributeNS() yöntemlerini kullanabilirsiniz: http://www.benknowscode.com/2012 /09/using-svg-elements-with-jquery_6812.html –

2

jQuery for Document.createElementNS() nedir? olacağını

: çok

rect = $(document.createElementNS(lu('svg'), 'rect')) 
    .addClass('emleGraphicOutline') 
    .attr({ 
     x: 35, 
     y: 25, 
     width: 200, 
     height: 50 
    }); 

Ama gerçekten elbette, bunun için jQuery kullanarak kazanılan: Yani OP'ın durumunda

$(document.createElementNS('namespace', 'tag')) 

. Her durumda, jQuery'de DOM düğümleri her zaman ör. $(rect), vanilya JS ile rect oluşturduktan sonra.

jQuery'nin 'un lowercasing attributes nedeniyle kesilmesi gibi SVG ile ilgili başka sorunları olduğunu unutmayın; bu nedenle, bazı JS'ler hala bazı öznitelikler için kullanılmalıdır.

İlgili konular