如果href只包含#

时间:2017-10-04 09:59:04

标签: javascript jquery printing

我正在使用jQuery-printPage-plugin

我有一个打印按钮

<a href="#" id="printbutton" onclick="checkprintbutton();"><i class="fa fa-print"></i> </a>

我正在初始化printPage插件

$('#printbutton').printPage({  message:"Printing ticket for:<span></span>" }); 

我有预订列表,当我点击预订时,打印按钮的URL(href属性)会发生变化。

function trBookingClick(id)
{ 
    $("#printbutton").attr("href","{{ $pageUrl }}/print/"+id);
}

如果单击打印按钮而未选择预订,则会显示错误消息。

    function checkprintbutton() {
    var href =  $("#printbutton").attr("href"); 
    if (href=="#") {
    notyMessageError('No booking selected! Select a booking and try again.');
    $('#printbutton').printPage({  beforeCallback: function() {return false; }, message:"Printing ticket for:<span></span>" }); 
    }

问题在于它正在初始化printPage插件,即使没有打印按钮的链接。如果href属性包含hashtag,如何防止printPage初始化?

这是jsfiddle link

非常感谢您提前。我很感激任何建议。

2 个答案:

答案 0 :(得分:1)

您可以修改此行:

$('#printbutton').printPage({  message:"Printing ticket" }); 

指定您不希望自己的元素设置为href {/ 1}}:

#

<强>更新

如果你动态改变你的href:

,这应该有效

编辑:

$('#printbutton:not([href="#"])').printPage({  message:"Printing ticket" });

this.on("click",
    function(){  loadPrintDocument(this, pluginOptions); return false;
});

您可以完全删除this.on("click", function(){ if ($(this).attr('href') == '#') { alert('No booking selected! Select a booking and try again.'); return false; } loadPrintDocument(this, pluginOptions); return false; }); 功能。

答案 1 :(得分:0)

如果没有选择预订,

printPage应该在else中:

if(href == '#') {
    notyMessageError('No booking selected! Select a booking and try again.');
} else {
    $('#printbutton').printPage({  beforeCallback: function() {return false; }, message:"Printing ticket for:<span></span>" });
}