簡體   English   中英

如何在jquery attr()方法中使用“ onclick”事件的“ javascript:window.location.href”值?

[英]How to use “javascript:window.location.href's” value of “onclick” event in jquery attr() method?

我有以下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>

現在,我在print_invoice類上調用jQuery函數,如下所示:

$('.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屬性值。 實際上,我想使用"javascript:window.location.href"包含的URL值,但無法執行此操作。

將您的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事件之外,我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')
});

您的類.print_invoice是一個按鈕,而不是帶有href的錨鏈接。

好吧,可能我會完全重寫代碼,但是如果由於某些原因您不能這樣做,我將這樣做:

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

正如另一個答案所說,沒有href屬性。 該URL隱藏在onclick-Attribute中。 因此,我們得到了一個並在正確的位置將其拆分,以獲得一個數組,其中數組的中間條目(等於post_url [1])是URL

使用數據屬性:

<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')
});
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM