我正在使用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初始化?
非常感谢您提前。我很感激任何建议。
答案 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>" });
}