Javascript Popup.js不工作
我的HTML是这样的Javascript Popup.js不工作,javascript,jquery,Javascript,Jquery,我的HTML是这样的 <div class="container"> <p>MANHATTAN ...<a href="#" class="poper">Read More</a></p> <p class="popup" style="display:none" >some text</p> </div> <div class="container
<div class="container">
<p>MANHATTAN ...<a href="#" class="poper">Read More</a></p>
<p class="popup" style="display:none" >some text</p>
</div>
<div class="container">
<p>washington...<a href="#" class="poper">Read More</a></p>
<p class="popup" style="display:none" >some text 2</p>
</div>
<script type="text/javascript" xmlns:exslt="http://exslt.org/common">
$(function(){
$('.poper').popup({
content : $(this).parents('.container').find(".popup")
});
});
</script>
曼哈顿
一些文本
华盛顿
一些文本2
我用这个做一个弹出窗口
<div class="container">
<p>MANHATTAN ...<a href="#" class="poper">Read More</a></p>
<p class="popup" style="display:none" >some text</p>
</div>
<div class="container">
<p>washington...<a href="#" class="poper">Read More</a></p>
<p class="popup" style="display:none" >some text 2</p>
</div>
<script type="text/javascript" xmlns:exslt="http://exslt.org/common">
$(function(){
$('.poper').popup({
content : $(this).parents('.container').find(".popup")
});
});
</script>
$(函数(){
$('.poper')。弹出窗口({
内容:$(this.parents(“.container”).find(“.popup”)
});
});
但它不起作用。有人能指出我做错了什么吗
注意:已经添加了对Jquery和弹出式JS的引用。这里没有显示
这就是你应该说的:
$('.poper').popup({
content : function(e){
return $(this.ele).closest('.container').find(".popup").text()
}
});
问题是选择器中“this”关键字的值
$(this).parents('.container').find(".popup")
由于Popup.js插件的工作原理,当用户单击链接时,“this”的值是Popup对象,而不是单击的链接。例如,如果在小提琴上添加console.log行
content : function(){
console.log(this);
$(this).parents('.container').find(".popup")
}
然后单击链接,弹出窗口将记录在控制台中,而不是链接元素中。因为“this”不是您期望的点击链接,所以您的JS找不到.popup元素
Popup.js将Popup触发器元素的引用保留为this.ele。因此,如前所述更改init函数,它就会工作
关于POPUP.JS的更多详细信息 插件文档并没有告诉你它应该告诉你的那么多,所以如果其他人发现它们有用,这里有一些更多的细节: 插件以更基本的形式请求链接的href属性中的任何内容,并将其显示在弹出窗口中 使用弹出页面中的此示例
将在弹出窗口中打开占位符图像
类似地,这个例子
向http://toddish.co.uk
并将结果加载到弹出窗口中
但是,当您提供带有href属性的Popup.js链接时,您需要以另一种方式提供内容
在这种情况下,您可以在“内容”选项的popup()初始化中传递内容。例如,您可以创建一个匿名函数,该函数将字符串返回到“content”。这项工作:
$('.popupContent').popup({
content : function(){
return 'Hello World';
}
});
如果添加类型选项以设置内容类型,还可以将所需内容指定为字符串:
$('.html_popup').popup({
content : '<h1>This is some HTML</h1>',
type : 'html'
});
Popup.js将获取隐藏元素的内容,并在用户单击时显示在弹出窗口中
看起来像一个不错的脚本,开发人员只是没有解释一切 已经添加了对Jquery和弹出式JS的引用。CSS文件呢?如果不工作太广泛,请查看您的控制台所说的内容,并在此处发布错误。请创建您的JSFIDLE,以便我们可以解决您的问题problem@NiravPrajapatiFiddle是made@Mr.Alien CSS也被添加。控制台没有显示任何错误。我现在做了一把小提琴。请检查一下,这个问题有点笼统,但有一个明确的解决方案-Athul只需要按照我的建议更改他的弹出初始化函数,原因我提到过。
$('.poper').popup();