将网页上的链接重定向到javascript函数
我试图重定向网页上的链接,在这个简单的例子中,它只是通过一个简单的检查来设置cookie 首先,我不确定这是否是解决这种情况的正确方法,如果我在“download_link”类中有多个链接时遇到问题,但即使现在,只有一个这样的链接,目标设置为undefined,看起来像$(这个)在调用重定向器时,实际上是指向整个HTML文档,而不仅仅是我试图更改的元素将网页上的链接重定向到javascript函数,javascript,jquery,Javascript,Jquery,我试图重定向网页上的链接,在这个简单的例子中,它只是通过一个简单的检查来设置cookie 首先,我不确定这是否是解决这种情况的正确方法,如果我在“download_link”类中有多个链接时遇到问题,但即使现在,只有一个这样的链接,目标设置为undefined,看起来像$(这个)在调用重定向器时,实际上是指向整个HTML文档,而不仅仅是我试图更改的元素 function redirect_link(e, destination) { if ($.cookie("conta
function redirect_link(e, destination) {
if ($.cookie("contact_set") == "true") {
window.location.href = destination;
} else {
alert("cookie not set");
}
}
function redirector(destination) {
alert("creating redirector to "+destination);
return function(e) {redirect_link(e, destination)};
}
$(document).ready(function() {
$('.download_link').click(redirector($(this).attr("href")));
$('.download_link').attr("href", "#");
});
您正在从文档的ready
回调范围访问$(this)
,因此$this
指向HTMLDocument
对象
$(document).ready(function() {
var $downloadLnk = $('.download_link');
$downloadLnk.click(redirector($downloadLnk.attr("href")));
$downloadLnk.attr("href", "#");
});
按照您在评论中的要求:
$(document).ready(function() {
$('.download_link').each(function() {
var $lnk = $(this);
$lnk.click(redirector($lnk.attr("href")));
$lnk.attr("href", "#");
});
});
您正在从文档的ready
回调范围访问$(this)
,因此$this
指向HTMLDocument
对象
$(document).ready(function() {
var $downloadLnk = $('.download_link');
$downloadLnk.click(redirector($downloadLnk.attr("href")));
$downloadLnk.attr("href", "#");
});
按照您在评论中的要求:
$(document).ready(function() {
$('.download_link').each(function() {
var $lnk = $(this);
$lnk.click(redirector($lnk.attr("href")));
$lnk.attr("href", "#");
});
});
$(function(){/$(function(){/您始终可以使用目标:
$(document).ready(function() {
$('.download_link').on('click', redirector); //bind to function
$('.download_link').attr("href", "#");
});
function redirector(event) {
alert("creating redirector to "+event.target.href); //event.target
return function(e) {redirect_link(e, destination)};
}
但是,当单击链接时,无论您使用什么,href都将是
,因为您在单击处理程序后的下一行将其设置为该值?您始终可以使用目标:
$(document).ready(function() {
$('.download_link').on('click', redirector); //bind to function
$('.download_link').attr("href", "#");
});
function redirector(event) {
alert("creating redirector to "+event.target.href); //event.target
return function(e) {redirect_link(e, destination)};
}
但是,当单击链接时,无论您使用什么,href都将是#
,因为您在单击处理程序后的下一行将其设置为该值?这似乎目前运行良好,而我只有一个这样的链接……如何处理更多链接?如果您可以使用选择器识别每个链接,您可以使用jQuery的每个
函数。这似乎目前运行良好,而我只有一个这样的链接……我该如何处理更多链接?如果您可以使用选择器识别每个链接,您可以使用jQuery的每个
函数。href不是已经重置为“#”当它进入重定向器时?是的,它会这样做,但无论如何它都会这样做!它警告正确值的唯一原因是因为函数未绑定到处理程序中,它会立即执行,因为它在单击中绑定了paradensis,所以我没有真正理解您要做的事情?尝试重新执行吗在href中移动目标,并用onClick处理程序替换它,该处理程序可以执行其他操作,并最终重定向到用户试图获取的内容……href不是已经重置为“#”了吗当它进入重定向器时?是的,它会这样做,但无论如何它都会这样做!它警告正确值的唯一原因是因为函数未绑定到处理程序中,它会立即执行,因为它在单击中绑定了paradensis,所以我没有真正理解您要做的事情?尝试重新执行吗在href中移动目标,并用onClick处理程序替换它,该处理程序可以执行其他操作,并最终重定向到用户试图获取的内容。。。