从远程获取事件触发器:true
Rails Getting event trigger from remote:true
我有一个link_to与remote:true在一个按钮在我的一个视图在Rails
我想改变那个按钮的属性[让我们说把它变成蓝色]后,AJAX被调用和处理我的。js。erb文件,它指向,但我不知道如何获得该对象传递到我的。js.erb。如果我不使用remote:true,但使用原始/自制AJAX,我想要的是this
或$(this)
,但我不知道如何将this
传递到我的.js.erb
文件
示例代码(简化):
index . html
link_to("Load This One", show_path(1), {:remote true})
show.js.erb
//Load some modal
$("#myModal .modalcontent).html("<%=.......>");
$("#myModal").modal();
// ****** change properties on button that loaded that modal
$( this).css('color', 'blue');
我想知道如何在我的show.js.erb中获得link_to锚。这可能吗?
谢谢!
有两种方法:
UJS Ajax Hooks
你可以在你的应用程序的asset pipeline
:
#app/assets/javascripts/application.js
$(document).on("ajax:send", "a", function(xhr){
$(this).css("color", "blue");
}).on("ajax:success", "a", function(data, status, xhr) {
alert("Ajax Success!!");
});
ID
在后端有效"绑定"元素的唯一其他方法是在DOM中使用id
属性:
#app/views/controller/your_view.html.erb
<%= link_to "Load", show_path(1), remote: true, id: "1" %>
只要id
属性与您传递给控制器的对象相对应,您就可以使用以下内容:
#app/controllers/your_controller.rb
Class YourController < ApplicationController
def show
...
@id = params[:id]
respond_to do |format|
format.js #-> show.js.erb
end
end
end
#app/views/your_controller/show.js.erb
$('# <%=j @id %>').css('color', 'blue')
为您的link_to指定id
<%= link_to("Load This One", show_path(1), remote: true, id: 'my-button') %>
然后用这个链接id来改变它的颜色
在你的js。erb文件
$('#my-button').css('color', 'blue')
相关文章:
- 每次只在第一个上单击事件触发器
- 2个Analytics帐户中的Google Analytics事件触发器跟踪
- jQuery 可排序事件触发器
- 使用 Hammer.js 的程序化事件触发器
- Javascript/AngularJS:如何使点击事件触发器成为父级
- jQuery特定的事件触发器
- Unity 3d事件触发器将gameobject.active设置为false
- 上的jquery inputmask事件触发器未完成
- 如何在PlayN中添加对自定义JavaScript事件触发器的支持
- dom对象创建javascript和jquery后的事件触发器
- google将v3事件触发器映射到json创建的标记上
- 通过事件触发器/按钮单击将参数传递给 javascript 函数
- 自定义打印功能,打印内容未显示在第一个事件触发器上
- 如何使用带有复选框的事件触发器访问 ID 数组
- 如何使用事件触发器和自定义属性获取元素的子元素
- 如何在使用循环时调用 jquery 事件触发器
- IE 中浮点和内联块元素的 focusin 事件触发器
- 页面中的 Angularjs-Accordion 事件触发器
- JS切换事件触发器无法正常工作
- 使用事件触发器如何在输入更改时将值传递给函数