0

我有以下 HTML 代码:

<span class="c-bl-btn c-print-btn"><input type="button" class="more print_invoice" name="" id="" value="Print Invoice" onclick="javascript:window.location.href='{$control_url}modules/transactions/view_transactions.php?op=print_invoice&txn_no=101&user_id=1001'"></span>

现在我jQuery在类上调用一个函数,print_invoice如下所示:

$('.print_invoice').live('click', function (e) { 
     // alert('here');                  
    e.preventDefault();  
    var post_url = $(this).attr('href');            
    window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});

$('.print_invoice').unbind('click');

但是我无法在上面的函数调用中获取 href 属性值。实际上我想使用其中URL包含的值,"javascript:window.location.href"但我无法做到这一点。

4

4 回答 4

1

将您的 HTML 更改为

<span class="c-bl-btn c-print-btn"><input type="button" class="more print_invoice" name="" id="" value="Print Invoice" data="{$control_url}modules/transactions/view_transactions.php?op=print_invoice&txn_no=101&user_id=1001"></span>

请注意onclick,我已将 url 包含在data属性中,而不是事件。这样更容易提取数据。

JS

$('.print_invoice').on('click', function (e) {        
    e.preventDefault();
    var post_url = $(this).data();
    window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});
于 2013-10-03T06:55:10.503 回答
0

好吧,也许我会完全重写代码,但如果由于某些原因你不能,我会这样做:

var post_url = $(this).attr('onclick').split( "'" );
post_url = post_url[1];

正如另一个答案所说,没有href-属性。URL 隐藏在 onclick-Attribute 中。所以我们得到这个并在正确的位置拆分它以获得一个数组,其中数组的中间条目(等于 post_url[1])是 URL

于 2013-10-03T06:51:45.973 回答
0

使用数据属性:

<span class="c-bl-btn c-print-btn"><input type="button" class="more print_invoice" name=" value="Print Invoice" data-url="{$control_url}modules/transactions/view_transactions.php?op=print_invoice&txn_no=101&user_id=1001"></span>

Javascript代码:

$(document).ready(function(){
$('.print_invoice').on('click', function () {  
var post_url = $(this).data('url');  
window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes,    toolbar=no, menubar=no, location=no, directories=no, status=true')
});
});

您还可以使用输入隐藏字段:

<input type="hidden" value="{$control_url}modules/transactions/view_transactions.php? op=print_invoice&txn_no=101&user_id=1001" id="print_url">

Javascript代码:

$(document).ready(function(){
$('.print_invoice').on('click', function () {  
var post_url = $("#print_url").val();
window.open(post_url, 'Transaction Invoice', 'width=640, resizable=yes, scrollbars=yes, toolbar=no, menubar=no, location=no, directories=no, status=true')
});
});
于 2013-10-03T07:12:44.543 回答
0

您的 .print_invoice 类是一个按钮,而不是带有 href 的锚链接。

于 2013-10-03T06:47:16.513 回答