0

我正在为我的网站使用 PHP、Smarty、jQuery、Colorbox jQuery 插件等。所有必需的文件都包含在 index.tpl 文件中,所以我在这里没有提到这些文件。他们被包括在内并且工作正常。从一个 smarty 模板文件中,我调用了 Colorbox 弹出窗口。它的代码如下:

<a href="{$control_url}modules/transactions/view_transactions.php?op=user_transaction_detail&page={$cur_page}&txn_no={$my_transaction.transaction_no}&user_id={$my_transaction.transaction_user_id}&from_date={$from_date}&to_date={$to_date}{if $transaction_status!=''}&transaction_status={$transaction_status}{/if}{if $transaction_no!=''}&transaction_no={$transaction_no}{/if}#searchPopContent" class="c-icn c-edit-n inline_edit_transaction_details">edit</a>

{literal}
<script language="javascript" type="text/javascript">
$(document).ready(function(){   
    $(".inline_edit_transaction_details").colorbox({href:$(this).attr('href'),width:999, height:999});
}); 

</script> 
{/literal}

灯箱也得到正确显示。供您参考,我在此处附上屏幕截图。 在此处输入图像描述 现在我想在点击更新链接时调用一个 jQuery AJAX 函数,如附图所示。出于测试目的,我在 AJAX 函数的开头放置了一条警告消息,但无法调用它。供您参考,我将 smarty 模板中的代码放在下面。Colorbox 弹出窗口(Smarty 模板)的代码如下:

<td><a class="edit_user_transaction_status" href="{$control_url}{$query_path}?op=edit_user_transaction&page={$page}&txn_no={$user_transaction_details.transaction_no}&transaction_data_assign={$user_transaction_details.transaction_data_assign}&user_id={$user_id}{if $user_name!=''}&user_name={$user_name}{/if}{if $user_email_id!=''}&user_email_id={$user_email_id}{/if}{if $user_group!=''}&user_group={$user_group}&{/if}{if $user_sub_group!=''}&user_sub_group={$user_sub_group}{/if}{if $from_date!=''}&from_date={$from_date}{/if}{if $to_date!=''}&to_date={$to_date}{/if}{if $transaction_status!=''}&transaction_status={$transaction_status}{/if}{if $transaction_no!=''}&transaction_no={$transaction_no}{/if}">Update</a></td>

jQuery AJAX 函数如下:

$(document).ready(function() {
//This function is use for edit transaction status
    $(".edit_user_transaction_status").click(function() {  alert("Hello");

      $(".edit_user_transaction_status").bind('click', function(){
        $.colorbox.close();
      });

         e.preventDefault();
         //for confirmation that status change
         var ans=confirm("Are you sure to change status?");
         if(!ans) {
             return false;
         }  
         var post_url           = $(this).attr('href');
         var transaction_status_update = $('#transaction_status_update').val();      

         $.ajax({
             type: "POST",
             url: post_url+"&transaction_status_update="+transaction_status_update,
                 data:$('#transaction_form').serialize(),
             dataType: 'json',  
             success: function(data) {              
                 var error = data.login_error;

                 $(".ui-widget-content").dialog("close");
                //This variables use for display title and success massage of transaction update              
                 var dialog_title   = data.title;              
                 var dialog_message = data.success_massage; 
                 //This get link where want to rerdirect
                 var redirect_link  = data.href;            

                 var $dialog = $("<div class='ui-state-success'></div>")
                 .html("<p class='ui-state-error-success'>"+dialog_message+"</p>")
                 .dialog({
                     autoOpen: false,
                     modal:true,
                     title: dialog_title,
                     width: 500,
                     height: 80,
                     close: function(){                                     
                         document.location.href =redirect_link;
                     }                  
                 });                    

                 $dialog.dialog('open');                    
             }          
        });
     });
});

我尝试了很多来调用这个函数,但无法调用。当我检查萤火虫的控制台时,它也没有给出任何错误。所以我认为不存在语法错误。谁能帮我调用这个函数?提前致谢。

4

1 回答 1

0
   $(".edit_user_transaction_status").click(function(e) { 
    e.preventDefault(); // apply in click event not outside
     alert("Hello");
});

或者

      $(".edit_user_transaction_status").bind('click', function(e){
e.preventDefault();  // apply in click event not outside
        $.colorbox.close();
      });

参考e.preventDefault

于 2013-09-16T06:39:47.543 回答