我正在使用jQuery Tools(http://jquerytools.org/)并且无法获得以下函数来接受传递的参数。我不精通javascript或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 :(得分:1)
除非您在上面定义了名为apple的变量(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
答案 1 :(得分:1)
不引人注目的javascript方法通常被认为是更好的JQuery方式。
$('a.someclass').click(function() { popup('orange'); });
在此示例中,假设您为<a>
元素提供了一个“someclass”类。
这使你的js与你的html分开。该代码可以进入文档就绪事件:
$(document).ready(function() {
// code here
});
答案 2 :(得分: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();
});
});