为什么在以下场景中调用不会转到jQuery函数?

时间:2013-10-03 10:36:38

标签: javascript jquery

我的HTML代码如下:

<span class="c-bl-btn c-mail-btn-another"><input type="button" class="more send_email" name="" id="" value="Email Invoice" data="../modules/transactions/view_transactions.php?op=email_invoice&txn_no=1001&user_id=101"></span>

$('.send_email').click(function (e) {
    e.preventDefault();

    var ans=confirm("Are you sure to Email this invoice?");
      if(!ans) {
            return false;
      }

    var post_url = $(this).attr('href');    
    $.ajax({
        url: post_url,
        type : 'get',
        dataType: 'json',
        success: function(data) {
            var status       = data.status;
            var dialog_title = "Email Invoice";
            var message      = data.msg; 

             if(status == 'success') {
                 var $dialog = $("<div class='ui-state-success'></div>")
                 .html("<p class='ui-state-error-success'>"+message+"</p>")
                 .dialog({
                     autoOpen: false,
                     modal:true,
                     title: dialog_title,
                     width: 500,                       
                     buttons:{
                         'OK': function() {
                             $(this).dialog('close');   

                         }                           
                     }

                 });                    
             } else {       
                 var $dialog = $("<div></div>")
                 .html("<p class='ui-state-error-text'>"+message+"</p>")
                 .dialog({
                     autoOpen: false,
                     modal:true,
                     title: dialog_title,
                     width: 500,                       
                     buttons:{
                         'OK': function() {
                             $(this).dialog('close');
                         }                             
                     }                            
                 });                         
             }  
              $dialog.dialog('open'); 
        }
    });
});

此外,firebug控制台中没有错误。我正在使用jQuery 1.9。但是,如果我调用javascript函数,它就会收到一个电话。我尝试了很多,但没有得到满意的解决方案。任何人都可以帮我打电话给jQuery函数吗?提前致谢。 如果我使用以下代码来调用javascript函数,则会调用它。

<span class="c-bl-btn c-mail-btn-another"><input type="button" class="more send_email" name="" id="" value="Email Invoice" data="$control_url}modules/transactions/view_transactions.php?op=email_invoice&txn_no={$user_transaction_details.transaction_no}&user_id={$user_id}" onclick="open_win()"></span>

function open_win()
{
var ans=confirm("Are you sure to Email this invoice?");
      if(!ans) {
            return false;
      }

}

1 个答案:

答案 0 :(得分:2)

我注意到您的代码中还有其他几个错误。

  1. 如果您在点击按钮"send_email" - <input type="button" class="more send_email" name="" id="" value="Email Invoice" data="../modules/transactions/view_transactions.php?op=email_invoice&txn_no=1001&user_id=101">
  2. 时调用此代码

    在这里,您会看到输入标记格式不正确且您错过了"/"

    2。如果是一个按钮(即$(this)),则无法使用$(this).attr('href');。这只适用于超链接。

    3。我发现您已将帖子位置存储在data属性中。它应该是data-attributeName

    所以它应该是data-url = "../modules/transactions/view_transactions.php?op=email_invoice&txn_no=1001&user_id=101"

    您可以按照$(this).data("url")

    访问它

    JSFiddle目前正在关闭。当它再次出现时我会尝试制作一个小提琴

    JSFIDDLE LINK