2009-03-05 15 views
2

Bir RSJ şablonundan bir html tag nitelik değerini değiştirmek mümkün mü? Bir page.replace_html yöntemi olduğunu biliyorum, ancak benim durumumda pek kullanışlı değil çünkü çeşitli özniteliklere (alt, bir resmin başlığı gibi) sahip olduğum uzun değerlerim var. İstediğim, RJS'de bir img etiketinin src özniteliğini değiştirmek. Bu mümkün mü?RJS şablonundan html tag niteliği değeri nasıl değiştirilir?

Teşekkür ederiz.

cevap

3

DÜZENLEME: İlk denemem işe yaramadı, ancak bu.

update_page do |page| 
    page['image_id']['src'] = new_image_url 
end 
+0

Rica ederim. =) –

3

Can'ın cevabına hafif bir değişiklik. önerildiği gibi

update_page do |page| 
    page['image_id']['src'] = new_image_url 
end 

JS anlamına:

$('image_id').src = new_image_url 

Bu pek çok yok, direkt JS DOM değişken erişime sahip bazı özellikler için çalışacaktır.

$('image_id').setAttribute('attrib', new_attrib_val) 

ve gitmek iyi olmalı:

update_page do |page| 
    page['image_id'].set_attribute('attrib', new_attrib_val) 
end 

JS anlamına: Neyse ki RJS JS yöntemini yeniden yazma konusunda oldukça iyi çağırır.


Küçük güncelleştirme: IE uyumluluğunu istiyorsanız, bunun yerine write_attribute kullanmak isteyebilirsiniz.


Küçük güncelleştirme: yukarıdaki, [: src] ve: attrib, bunlar statikse daha iyi bir stil olabilir.

0

Rails ayarlarına bağlı olarak, yukarıdaki kod yalnızca page_update başlangıç ​​ve bitiş satırlarını hariç tutarsanız çalışabilir - Windows 7'de mongrel üzerinde Rails çalıştırıyorum ve sayfa [element] [özniteliği] kodunu koyarım update_page bloğu dışında, kendi kendine çalışır, ancak bloğun içine dahil etmek, kodu bozar.

İlgili konular