Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 如何将元素与jQuery的触发器链接相关联?_Javascript_Jquery - Fatal编程技术网

Javascript 如何将元素与jQuery的触发器链接相关联?

Javascript 如何将元素与jQuery的触发器链接相关联?,javascript,jquery,Javascript,Jquery,我不确定如何正确地命名我的问题,但问题是: 我在一个页面上有许多div元素,并触发指向这些元素的链接,每个元素都有锚ID。这些元素将用作弹出窗口 <a href="#pop1" class="trigger" id="t1">Show Popup #1</a> <a href="#pop2" class="trigger" id="t2">Show Popup #2</a> <a href="#pop3" class="trigger" id

我不确定如何正确地命名我的问题,但问题是:

我在一个页面上有许多div元素,并触发指向这些元素的链接,每个元素都有锚ID。这些元素将用作弹出窗口

<a href="#pop1" class="trigger" id="t1">Show Popup #1</a>
<a href="#pop2" class="trigger" id="t2">Show Popup #2</a>
<a href="#pop3" class="trigger" id="t3">Show Popup #3</a>

<div id="pop1" class="popup">...content here...</div>
<div id="pop2" class="popup">...content here...</div>
<div id="pop3" class="popup">...content here...</div>

由于触发器有一个公共类
触发器
,因此可以执行以下操作:

$(".trigger").click(function(){
    $(this.href).toggle(); // href is "#pop1", "#pop2", etc.
    return false; // prevent default action of anchor tag click
});

您可以将数据属性(例如,数据div id)添加到包含关联div id的链接标记中:

<a href="#pop1" class="trigger" id="t1" data-div-id="pop1">Show Popup #1</a>

应该使用
preventDefault()
而不是
return false
-@techfoobar,这可能是一个好的、简单的解决方案,但它不起作用$(this.href)在您的代码中返回空数组。谢谢,这个可以正常工作,但必须有一个基于href属性的解决方案。
<a href="#pop1" class="trigger" id="t1" data-div-id="pop1">Show Popup #1</a>
$('a.trigger').click(function(){
    $('div#' + $(this).data('divId')).toggle();
}