Javascript 单击链接以执行函数?

Javascript 单击链接以执行函数?,javascript,jquery,Javascript,Jquery,我想在点击链接后运行一个函数 我想指向函数的链接是带有cancelLink类的链接。这里的第一个链接向您展示了如何获取AppointmentId。第一个链接通过向另一个页面传递参数来工作 我想能够点击取消链接,并在当前页面上运行一个功能 以下是我的链接: <a href="Invoices/InvoiceCreate.aspx?AppointmentId=${AppointmentId}">Invoice</a>&nbsp;| <a href="#" cla

我想在点击链接后运行一个函数

我想指向函数的链接是带有
cancelLink
类的链接。这里的第一个链接向您展示了如何获取AppointmentId。第一个链接通过向另一个页面传递参数来工作

我想能够点击取消链接,并在当前页面上运行一个功能

以下是我的链接:

<a href="Invoices/InvoiceCreate.aspx?AppointmentId=${AppointmentId}">Invoice</a>&nbsp;|
<a href="#" class="cancelLink" data-attr=${AppointmentId}>Cancel</a>

当前代码未进入此单击功能,我如何实现此功能?

我觉得您的代码很好。这是一张工作票。您是否尝试过放置“console.log(“示例测试”);”在你的点击处理程序里面,看看它是否在发射?您是否可以同时发布您是如何将代码包装到$(document).ready()中的

你是这样做的吗

$(document).ready(function() {
   $('a.cancelLink').click(function () {
       var appointmentId = $(this).attr("data-attr");
       //var appointmentId = $(this).attr("appointmentId");
       MemberWebService.AppointmentStatusUpdate(appointmentId, 3, function () {

       window.location = 'AppointmentViewAll.aspx';
   });
 });
});
试试这个:

$('a.cancelLink').click(function (e) {
  e.preventDefault();
  var appointmentId = $(this).attr("data-attr");
   //var appointmentId = $(this).attr("appointmentId");
   MemberWebService.AppointmentStatusUpdate(appointmentId, 3, function () {

    window.location = 'AppointmentViewAll.aspx';
  });
});

我希望能有所帮助。

我找到了一些可能的原因,请参阅我的评论

HTML


请参阅和。

使用onclick方法调用函数并添加参数

<a href="#" onclick="bindCancel(${AppointmentId})">Cancel</a>

function bindCancel(appointmentId) {
    MemberWebService.AppointmentStatusUpdate(appointmentId, 3, function () {

    });
}

函数bindCancel(任命ID){
MemberWebService.AppointmentStatusUpdate(appointmentId,3,函数(){
});
}

我觉得你的代码不错。您在浏览器控制台上看到任何错误吗?@ClaudioRedi没有在浏览器控制台上看到任何错误。$('a.cancelink')。单击(函数(e){e.preventDefault()});写下这篇文章,看看它是否有效。加载页面时,是在页面上添加#cancelLink,还是在加载后呈现/加载?如果它已经加载,您是否在domReady中执行
。单击()
?在获得AppointId
警报(appointmentId)后,尝试将警报放入click处理程序中谢谢,我尝试了此操作,但我的断点从未进入此函数。单击函数。是的,链接位于模板内。尝试添加一些自定义数据attr=“12”并查看它是否进入单击?仍然没有移动到我的onclick中?我的代码看起来与上面包装在$(document.ready())中的代码相同。如果运行$('a.cancelLink')在浏览器控制台中,它会显示什么?
<a href="Invoices/InvoiceCreate.aspx?AppointmentId=${AppointmentId}">Invoice</a>
<a href="#" class="cancelLink" data-attr="${AppointmentId}">Cancel</a> // Use quotes
$(document).ready(function() { // Only access elements once the DOM is loaded

  $(document).on('click', 'a.cancelLink', function(event) { // Try using on() instead of click() as you seem to be using some templating for creating the link ("${AppointmentId}").

    event.preventDefault(); // Don´t follow the link to #

    var appointmentId = $(this).data('attr'); // Use data() instead of attr()
    console.log(event.type, appointmentId); // View your console

    MemberWebService.AppointmentStatusUpdate(appointmentId, 3, function() {
       window.location = 'AppointmentViewAll.aspx';
    });
  });

});
<a href="#" onclick="bindCancel(${AppointmentId})">Cancel</a>

function bindCancel(appointmentId) {
    MemberWebService.AppointmentStatusUpdate(appointmentId, 3, function () {

    });
}