在本文中,我们将带你了解javascript–通过RubyOnRails中的jquery的onclick函数传递对象的id在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的Javascrip
在本文中,我们将带你了解javascript – 通过Ruby On Rails中的jquery的onclick函数传递对象的id在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的Javascript / jQuery onclick无法正常工作、javascript – JQuery onclick事件无法在第二页的JQuery数据表中识别、javascript – jQuery onclick传递post变量并重新加载页面、javascript – jquery onclick函数未定义。
本文目录一览:- javascript – 通过Ruby On Rails中的jquery的onclick函数传递对象的id
- Javascript / jQuery onclick无法正常工作
- javascript – JQuery onclick事件无法在第二页的JQuery数据表中识别
- javascript – jQuery onclick传递post变量并重新加载页面
- javascript – jquery onclick函数未定义
javascript – 通过Ruby On Rails中的jquery的onclick函数传递对象的id
我有一个Controller vendorController.并且视图文件是index.html.erb
我想通过onclick函数传递供应商的ID.
这是我的代码
在vendors_controller.rb下的代码
def index
@vendor = vendor.all
end
index.html.erb的代码
<script language="javascript" type="text/javascript">
function func1(id) {
alert(_id);
}
function func2(id) {
alert(id);
}
</script>
<% @vendors.each do |vendor| %>
<tr>
<td><%=link_to vendor.name , '#', onclick: "func1(1)", remote: true %></td>
<td><%= link_to vendor.id, '#', :onclick => 'func2(vendor.id)' %></td>
</tr>
<% end %>
对于func1()我收到警报.但对于func2我没有得到任何回应.
请帮助..提前谢谢你.
解决方法:
我认为你只需要逃脱onclick的内容以获得其中的实际id,而不仅仅是一个字符串“vendor.id” – 记住它只是一个字符串,因此它需要在其中包含正确的数据在浏览器中加载.
尝试
<td><%= link_to vendor.id, '#', :onclick => "func2(#{vendor.id})" %></td>
注意双引号,以允许字符串插值.
Javascript / jQuery onclick无法正常工作
我做了一个test.html文档来测试脚本。不知何故它不起作用,我不明白为什么什么也没发生。该脚本位于-tags中,并带有-tag,而css也具有-
tags。为什么不起作用?这是代码
<!DOCTYPE html><html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script> <script> $(''#menu li a'').on(''click'', function() { $(''li a.current'').removeClass(''current''); $(this).addClass(''current''); }); </script> <style> .current { text-decoration: underline; } ul { list-style-type: none; } a { text-decoration: none; } </style> </head> <body> <div id="menu"> <ul> <li><a id="about-link"href="#">ABOUT</a></li> <li><a id="events-link" href="#">EVENTS</a></li> <li><a id="reviews-link" href="#">REVIEWS</a></li> <li><a id="contact-link" href="#">CONTACT</a></li> </ul> </div> </body></html>
答案1
小编典典由于用于绑定事件处理程序的代码是在元素存在于中之前执行的DOM
,因此事件未绑定到元素上。
要解决此问题,您可以
- 将您的代码包装在
ready()
回调中,以便DOM
在加载完成后执行您的代码 - 将您的脚本移动到的末尾
<body>
,以便所有元素都存在于其中DOM
,您可以在其上绑定事件
码:
$(document).ready(function () { $(''#menu li a'').on(''click'', function () { $(''li a.current'').removeClass(''current''); $(this).addClass(''current''); });});
编辑
您还可以使用load
( 不推荐使用 )事件回调来绑定事件,但这将等待所有资源完全加载。
如果您想使用Vanilla
Javascript,可以DOMContentLoaded
在上使用event document
。
javascript – JQuery onclick事件无法在第二页的JQuery数据表中识别
$("#example tbody td.delete").click(function(event) { var row = $(this).closest("tr").get(0); oTable.fnDeleteRow( row ); });
行的所有最后一行都有“删除”类.
我该怎么做才能为所有页面或所有记录工作?
解决方法
$('#example tbody td.delete').live('click',function(event) { var row = $(this).closest('tr').get(0); oTable.fnDeleteRow( row ); });
jQuery .live()
编辑:
看起来人们仍在使用这个答案,所以要使用最新的最佳实践更新它,不要使用.live(). Live在1.7中被弃用,在1.9中删除.而是使用.on()处理程序.这可以通过将事件绑定到父元素,并使用您要作为可选选择器参数的实际元素来处理委托事件.要在上面的例子中使用它,它看起来像这样:
$('#example tbody').on('click','td.delete',function(event) { var row = $(this).closest('tr').get(0); oTable.fnDeleteRow( row ); });
javascript – jQuery onclick传递post变量并重新加载页面
要清楚我有这样的事情.
< a href =“test.PHP?name = test”>点击< / a>
如果启用了javascript,
我想我可以使用“event.preventDefault()”来抑制传递为GET变量.
所以现在onclick,name应该作为post变量而不是get传递.
如果禁用了javascript,
那么上面应该有效.
解决方法
<ahref="test.PHP?name=test">Click</a> <script type="text/javascript"> $('.postlink').click(function() { var form= document.createElement('form'); form.method= 'post'; form.action= this.protocol+'//'+this.hostname+this.pathname; $.each(this.search.slice(1).split(/[&;]/g),function() { var ix= this.indexOf('='); if (ix===-1) return; var input= document.createElement('input'); input.type= 'hidden'; input.name= decodeURIComponent(this.slice(0,ix)); input.value= decodeURIComponent(this.slice(ix+1)); form.appendChild(input); }); document.body.appendChild(form); form.submit(); return false; }); </script>
或者您可以改为执行AJAX请求,然后根据需要重新加载()页面.
但是,我不确定你为什么要这样做.什么用途是通常POST的链接,除非它不是? (不仅在JS被禁用/不可用时或者当它是搜索引擎时,而且当用户中间点击链接或尝试右键单击 – 将其加入书签或其他任何内容时.)
如果您想要的只是一个提交POST表单的按钮,那么最好真正使用真实表单并提交按钮,然后使用CSS将其重新设置为链接,如果这是您想要的样子.
javascript – jquery onclick函数未定义
我有一个ajax脚本,我试图从一个函数发布.我正在使用onlick href,但它不会出现未定义.这是使用wordpress.我试图在范围内外移动代码,但我似乎仍然无法让它工作.
<div id="live">
<div>
<?PHP the_content(); ?>
<div id="comment-display">
<form method="post" action="index.PHP" id="comments_submit">
<input type="hidden" id="nameBox" value="<?PHP echo $_SESSION['name'] ?>" name="name"/>
<input type="hidden" id="emailBox" name="email" value="<?PHP echo $_SESSION['email']; ?>"/>
<textarea id="chatBox" placeholder="Ask a question or make a comment" name="comment"></textarea>
<a href="javascript:submitComment();" type="submit" id="submit" name="submit"> Submit Comment </a>
</form>
<br />
<div id="displayComments"></div>
</div>
</div>
</div>
<script type="text/javascript">
jQuery(function($) {
setInterval(function(){
$.ajax({
method: "GET",
url: "<?PHP echo get_template_directory_uri()?>/get_chat.PHP"
}).done(function(html){
$('#displayComments').html(html);
});
}, 2000);
function submitComment(){
$.ajax({
method: "POST",
url: "template-live.PHP",
data: {submitComment:$('#chatBox').val(),submitName:$('#nameBox').val(),submitEmail:$('#emailBox').val()}
}).done(function(html){
alert('Your comment has been submitted, and will be displayed after approval.');
$('#chatBox').val('');
});
}
});
</script>
谢谢 :)
解决方法:
当你做javascript:submitComment(),它调用一个全局函数submitComment.由于submitComment是在jQuery(function($){…})函数中定义的,因此它不是全局的.因此,window.submitComment未定义(因此undefined不是函数).
全局变量存储在window对象中.
因此,您可以将submitComment公开为全局:
window.submitComment = function () {...}
请注意,您应该尽可能避免使用全局变量.在这种情况下,您可以通过添加:
$("#submit").click(submitComment);
// In this case, you shouldn't declare submitComment as a global anymore
由于您处于表单中,因此您希望在单击a元素时停止默认浏览器行为,方法是在函数末尾使用return false.
关于javascript – 通过Ruby On Rails中的jquery的onclick函数传递对象的id的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Javascript / jQuery onclick无法正常工作、javascript – JQuery onclick事件无法在第二页的JQuery数据表中识别、javascript – jQuery onclick传递post变量并重新加载页面、javascript – jquery onclick函数未定义等相关内容,可以在本站寻找。
本文标签: