在这里找到一个好的jquery弹出功能:
JAVASCRIPT
$(function() {
$("#word1234").live('click', function(event) {
$(this).addClass("selected").parent().append('
<div class="messagepop pop">"Lorem ipsum dolor sit amet,
consectetur adipisicing elit, sed do eiusmod tempor incididunt</div>');
$(".pop").slideFadeToggle()
$("#email").focus();
return false;
});
$(".close").live('click', function() {
$(".pop").slideFadeToggle();
$("#contact").removeClass("selected");
return false;
});
HTML
<a href='/word1234' id='word1234'>Supercalifragilisticexpialidocious</a>
是否有更有效的方法来调用此弹出窗口?如果我在一个页面上有数百个定义,我会在不必要的情况下重复很多代码。
如果我在本机JS中执行此操作,我只需将onClick函数设置为href标记,例如
<a href="#" id="word1234" onClick="doPop(this, 'Lorem ipsum, ect.')">Supercalifragilisticexpialidocious</a>
是否有类似的方法在JQuery中调用函数?
修改 经过一些调试后,可以在此处找到更新/修复脚本的工作版本:http://jsfiddle.net/N4QCZ/13/ hth。
答案 0 :(得分:2)
您可以将代码转换为jQuery Plugin,如下所示:
$.fn.myPopup = function(popupText){
var popupHtml = '<div class="messagepop pop">' + popupText + '</div>';
this.each(function(){
$(this).click(function(){
// Create the popup
$(this).addClass("selected").parent().append(popupHtml);
// Find the close button and attach click handler
$(this).find(".close").click(
// Find, hide, then delete the popup
$(this).closest(".pop").slideFadeToggle().remove();;
);
});
return false;
});
return this;
};
然后你的代码看起来像这样:
$("#word1234").myPopup("Lorem Ipsum");
$("#wordABCD").myPopup("Hello World");
答案 1 :(得分:1)
不要使用live
使用on
,直播自1.7版起已被弃用:
你可以给你的链接一个弹出类,然后执行:
$(".popup").on("click", function() {
// Your code
});
通过这种方式,您可以捕获popup
类的所有链接,并且不会绑定到100个事件,即:
$("#id1").click() { }
$("#id2").click() { }
等