Jquery hasClass + If语句
问题描述:
我想要下面的loadContent函数加载目标div只有当点击的链接有一个特定的类。这是我想出迄今:Jquery hasClass + If语句
function loadContent(targetDIV, sourceURL) {
if ($(this).hasClass("done")) {
$(""+targetDIV+"").load(""+sourceURL+"");
}
}
<a href="javascript:loadContent('#nav', 'news.php');" class="done">News</a>
函数作品,未经if语句,但我似乎无法得到hasClass与工作是否 - 任何想法?谢谢!
答
它更改为以下,和它应该工作:
<a href="#" onclick="loadContent.call(this, '#nav', 'news.php');" class="done">News</a>
使用.call()
,你在loadContent
功能设置的this
值当前元素。
而且因为我们在内联处理函数中使用onclick
,this
会给你那个传递的引用。
答
它不起作用的原因是因为在函数中引用“this”实际上并不指向链接。通过链接本身的功能获得更好的结果:
function loadContent(linkObj, targetDIV, sourceURL) {
if ($(linkObj).hasClass("done")) {
$(""+targetDIV+"").load(""+sourceURL+"");
}
}
<a href="javascript:loadContent(this, '#nav', 'news.php');" class="done">News</a>
答
而不是使用HREF =“JavaScript的:” ......你能也许使用jQuery的点击()方法来绑定你的点击?
我不确定是否正确设置了“this”,但我认为使用jquery click将确保“this”是您所期望的。我也认为这更清楚。