Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将值从链接传递到弹出窗口?_Javascript_Php_Jquery_Html_Wordpress - Fatal编程技术网

Javascript 如何将值从链接传递到弹出窗口?

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

我正试图将一个值传递给一个弹出窗口。 我上传了一个经销商名单与WP商店定位器插件,每个经销商有不同的电子邮件。因此,当点击一个按钮“电子邮件经销商”,我有一个弹出窗口,应该得到一个“数据属性”值的链接

现在我有了一个弹出式生成器插件,可以在点击链接时使用。但我无法从链接传递值

这是我这次点击的js文件

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