我有一个页面在路线上有交付点的div(每个都有一个子到达按钮),我写了一个脚本,当到达按钮时,将交付点div附加到页面底部的空div点击。如果页面被刷新,我想保留页面底部移动的div,以便我的驱动程序在此交付路线上不会混淆路线上的哪个交付点转到下一个。
这是我需要添加ajax调用的简单点击功能脚本。顺便说一句,具有类.arrived
的按钮和它们的父div都是在ruby循环中动态命名的,它在我的视图中打印它们。
$(".arrived").click( function() {
$("#item_" + $(this).attr("id")).appendTo("#delivered_collector");
});
我在应用程序的其他地方找到了另一个脚本,我认为我可以从这个任务中借用逻辑,但是我在理解它以及如何将其转换为我的click函数时遇到了一些麻烦。即使页面刷新,此示例也会保留复选框的状态。
$('input.delivery_label_check').on('click', function(e)
{
var $id=$(this).context.id.split("_")[2];
var $checked=$(this).prop('checked');
$.ajax({type: "POST",
url: "/ops/mark_label/"+$id+"?checked="+$checked,
success: function(data) {
}});
e.stopPropagation();
});
如果有人能够帮助我充分理解第二个脚本以便在第一个脚本中实现它的一部分,我将非常感激!
答案 0 :(得分:1)
// select an input with the delivery_label_check class
// whenever one of those appears on the page, add a click function to it
// it doesn't matter when one appears (that's what "on" does)
$('input.delivery_label_check').on('click', function(e)
{
// the click target has an id like "#name_thing_5" so split("_")
// makes ['name','thing','5'], then it gets the last item (aka '5')
var $id=$(this).context.id.split("_")[2];
// is the box checked or not?
var $checked=$(this).prop('checked');
// here is your ajax call
$.ajax({type: "POST",
url: "/ops/mark_label/"+$id+"?checked="+$checked,
success: function(data) {
}});
e.stopPropagation();
});
这有帮助吗?