2012-04-25 271 views
1

我正在使用jQuery Tools(http://jquerytools.org/),并且无法获取下面的函数来接受传递的参数。我不精通javascript或jquery,无法在任何地方找到解决这个问题的解决方案。感谢您的任何帮助!将参数传递给jQuery函数

当前设置:

<a href='javascript:popup();'>Text Link That Calls Below Function</a> 



<script> 
function popup() { 
if ($("#facebox").hasClass("init")) { 
    $("#facebox").overlay().load(); 
} 
else { 
    $("#facebox").addClass("init"); 
    $("#facebox").overlay({ 

    // custom top position 
    top: 260, 

    mask: { color: '#838383', 
     loadSpeed: 200, 
     opacity: 0.5 
    }, 
    closeOnClick: true, 
    load: true 
    }); 
} 
} 
</script> 

我想它做这样的事情......

<a href='javascript:popup(apples);'>Text Link That Calls Below Function</a> 



<script> 
function popup(choosebox) { 
if ($("#choosebox").hasClass("init")) { 
    $("#choosebox").overlay().load(); 
} 
else { 
    $("#choosebox").addClass("init"); 
    $("#choosebox").overlay({ 

    // custom top position 
    top: 260, 

    mask: { color: '#838383', 
     loadSpeed: 200, 
     opacity: 0.5 
    }, 
    closeOnClick: true, 
    load: true 
    }); 
} 
} 
</script> 
+0

不要使用'的JavaScript:'网址。不要使用'onclick' - 使用jQuery注册事件 – ThiefMaster 2012-04-25 20:12:01

回答

1

你需要传递一个字符串作为arguement,除非你有一个名为苹果的变量如上定义(var apples;)。试着改变它下面的喜欢,

<a href='javascript:popup("apples");'>Text Link That Calls Below Function</a> 

注意周围的popup("apples")

由于您使用jQuery,你可以做到这一点很好地像下面的报价,

HTML:

<a href='javascript:void(0)' class="aLink" >Text Link That Calls Below Function</a> 

JS:

$(function() { 
    $('.aLink').click(function() { 
     popup("apples"); 
    }); 
}); 

此外我认为你可能需要改变你的选择如下图所示,

function popup(choosebox) { 
    var $choosebox = $("#" + choosebox); 

    if ($choosebox.hasClass("init")) { 
     $choosebox.overlay().load(); 
    } 
    else { 
     $choosebox.addClass("init"); 
     $choosebox.overlay({ 
    //..rest of your code 
+0

应该使用'href ='javascript:void(0)''来避免触发hashchange? – tedski 2012-04-25 20:21:02

+0

@tedski同意并更新。谢谢 – 2012-04-25 20:22:13

1

不显眼的JavaScript方式被普遍认为是更好的和JQuery的方式。

$('a.someclass').click(function() { popup('orange'); }); 

提供你给你的<a>元素在这个例子中的一类“SomeClass的”的。

这会让你的js与你的html分离。该代码可以去在文档准备事件:

$(document).ready(function() { 
// code here 
}); 
0

写上锚的类的单击事件,然后确定其“盒子”,通过读取数据 - 属性有关该链接。这会给你一个通用的,可重用的jQuery代码块,可以通过匹配这个模式的任何锚标签来调用。

HTML:

<a href="#" class="popup" data-choosebox="apples">Text Link That Calls Below Function</a>

的JavaScript:

$(document).ready(function(){ 

    $('a.popup').on('click', function(e){ 

     var $_target = $('#' + $(this).data("choosebox")); 

     if ($_target.hasClass("init"){ 
      $_target.overlay().load(); 
     } else { 
      $_target.overlay().load({ 

       top: 260, 
       mask: { color: '#838383', 
         loadSpeed: 200, 
         opacity: 0.5 }, 
       closeOnClick: true, 
       load: true 
      }); 
     } 
     e.preventDefault(); 

    }); 

}); 
​