Javascript 如何将值从链接传递到弹出窗口?
我正试图将一个值传递给一个弹出窗口。 我上传了一个经销商名单与WP商店定位器插件,每个经销商有不同的电子邮件。因此,当点击一个按钮“电子邮件经销商”,我有一个弹出窗口,应该得到一个“数据属性”值的链接 现在我有了一个弹出式生成器插件,可以在点击链接时使用。但我无法从链接传递值 这是我这次点击的js文件Javascript 如何将值从链接传递到弹出窗口?,javascript,php,jquery,html,wordpress,Javascript,Php,Jquery,Html,Wordpress,我正试图将一个值传递给一个弹出窗口。 我上传了一个经销商名单与WP商店定位器插件,每个经销商有不同的电子邮件。因此,当点击一个按钮“电子邮件经销商”,我有一个弹出窗口,应该得到一个“数据属性”值的链接 现在我有了一个弹出式生成器插件,可以在点击链接时使用。但我无法从链接传递值 这是我这次点击的js文件 jQuery(document).ready(function ($) { console.log("Here's console output"); // I get this in
jQuery(document).ready(function ($) {
console.log("Here's console output"); // I get this in console
$('.emailDealerBTN').click(function(){
console.log("Clicked button"); // Nothing in console
emailDealer=$(this).attr("data-emaildealer");
console.log(emailDealer); // Nothing in console
});
});
下面是一个来自store locator插件的代码,它形成了按钮链接:
$listing_template .= "\t\t\t" . '<div class="button-wrapper"><a href="#" class="button-red button emailDealerBTN" id="emailDealerBTN" data-emailDealer=<%= formatEmail( email ) %> >Email a dealer</a></div>' . "\r\n";
我不确定问题是否出在商店定位器插件上。
上面的JS文件在加载DOMContentLoaded之前加载。然而,我确信“jQuery(document).ready(function($){”将给我一个在文档准备好之后检查点击的机会。它与插件代码之外的相同按钮链接一起工作
是的,我已经检查了关于slack和其他资源的其他问答。
感谢您的帮助!最好使用元素id作为选择器。请这样尝试
$(document).ready(function(){
$('#emailDealerBTN').click(function(){
alert($(this).attr('data-emailDealer'))
});
});
这里的问题可能是在生成按钮之前调用了
click()
事件
使用.on()
jQuery方法
.on()
允许在动态加载的内容上添加事件
试试这个:-
$(document).on('click','.emailDealerBTN',function(){
console.log("Clicked button");
var emailDealer = $(this).data("emaildealer");
console.log(emailDealer);
});
尝试在事件上使用
,以确保在动态添加或修改html元素时脚本仍将运行。全局定义变量也是一种不好的做法
( function($) {
$(document).ready( function() {
console.log('My script loaded')
});
$('body').on('click', '.emailDealerBTN', function() {
var emailDealer = $(this).data('emaildealer'); // or $(this).attr('data-emaildealer');
console.log('Clicked button');
console.log(emailDealer);
});
})(jQuery);
您想在模型中传递href
值或在模型中传递ancho
r文本吗?可以这样尝试:-$(文档)。在('click','.emailDealerBTN',function(){var emailDealer=$(this).data(“emailDealer”);console.log(emailDealer);};
您可以使用jQuery.data('attribute-name'))方法。有时,在同一个或另一个文件中为特定按钮定义了多个单击函数,因此它将执行该函数。因此,请检查是否存在此类冲突。我也尝试了该方法。该方法也不起作用。而且,id也不应该起作用o与类相比,它是唯一的值。谢谢!!!我尝试了。在('click',function(){)之前…似乎没有什么不同,但它以某种方式起了作用。如果这起作用,那么请接受答案…乐意帮助…你说“全局”到底是什么意思?如果这是一个愚蠢的问题,我很抱歉
( function($) {
$(document).ready( function() {
console.log('My script loaded')
});
$('body').on('click', '.emailDealerBTN', function() {
var emailDealer = $(this).data('emaildealer'); // or $(this).attr('data-emaildealer');
console.log('Clicked button');
console.log(emailDealer);
});
})(jQuery);