القضبان، jQuery، .js.erb الملفات، JS لم تنفذ بواسطة المتصفح

StackOverflow https://stackoverflow.com/questions/2016351

سؤال

أحاول استخدام JQuery، وكان كل شيء رائعا، حتى الآن، عندما أحاول تقديم جزء جزئي وإلحاق به إلى DIV. إليك كيف قمت بإعدادها:

لدي إجراء يستجيب ل JS:

def index
  @objects = Object.find(:all)

  respond_to do |format|
    format.js
  end
end

وقالب يسمى Index.js.erb مع بعض JavaScript في ذلك:

alert("hello world");

إرجاع Firebug استجابة "نص / جافا سكريبت" تحتوي على:

alert("hello world");

لكن نافذة التنبيه لا تظهر، ولا تعمل أي عمل جافا سكريبت آخر. راجعت http://railscasts.com/episodes/136-jquery.وأنا أكثر أو أقل التالية. حاولت عدة أشياء أخرى، مثل استخدام .RJS بدلا من .erb ووضع هذا في قالب بلدي:

page.alert("hello world"); 

لكنني أحصل على نفس النتيجة بالضبط، والمتصفح لا ينفذ أبدا JS.

أي شخص يعرف لماذا لا يتم تنفيذ جافا سكريبت؟

أنا تشغيل القضبان 2.3.4.

هل كانت مفيدة؟

المحلول

عليك أن تسميها من وجهة نظرك أو لن يتم تنفيذها أبدا.

مثال تحكم:

def index
  @objects = Object.find(:all)

  respond_to do |format|
    format.js{
      render :text => "alert('hello')"
    }
  end
end

و Index.html.erb مع:

<script type="text/javascript">
  $(function(){
    $.ajax({ url: '/controller', type: 'get', dataType:'script' });
  });
</script>

استبدال "/ تحكم" مع عنوان URL الفعلي الذي ينفذ إجراء فهرس وحدة التحكم، بشكل افتراضي ل SPACKSCONTROLLER، ستكون "/ منشورات" وما إلى ذلك ...

إذا كنت تحب RJS، فستحذف {} والإفتحية فيها في وحدة التحكم وإنشاء فهرس.js.erb أو index.rjs مع:

page.alert("hello world")

أو:

page << "hello world"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top