我有这个功能:
function showHideLayer(id)
{
$("#" + id).fadeToggle();
}
和这个PHP代码:
echo "
<a id=\"answer-".$i."\" href=\"#\" onlick=\"showHideLayer('subMessages-".$i."'')\">
<b>".count($ansPostId)."</b> Antworten</a>
<br>
<div id=\"subMessages-".$i."\" style=\"display: none;\">
message
</div>
但它不起作用
任何人都可以帮助我吗?
它应该通过点击Link来切换div。
谢谢=)
答案 0 :(得分:3)
你拼错了onclick
。你也有一个糟糕的报价订单。
以下是另一个建议:如何使用jQuery:
echo '<a id="answer-'.$i.'" href="#" class="answer" data-submessages="'.$i.'">
<b>'.count($ansPostId).'</b> Antworten
</a>
<br>
<div id="subMessages-'.$i.'" style="display: none;">
message
</div>';
和javascript:
$(document).ready(function() {
$('.answer').click(function() {
var sm_id = $(this).attr('data-submessages');
$('#subMessages-' + sm_id).fadeToggle();
});
});
这是一个工作示例: http://jsfiddle.net/USWVJ/
对于动态添加的DOM元素:
$(document).on('click', 'element', function)
$(document).ready(function() {
$(document).on('click', '.answer', function () {
var sm_id = $(this).attr('data-submessages');
$('#subMessages-' + sm_id).fadeToggle();
});
});
答案 1 :(得分:1)
拼错&#34; onlick&#34; =&GT; &#34;的onclick&#34;
答案 2 :(得分:1)
因为你已经在使用jQuery了。使用Attribute starts with selector.
试试这个:
$("a[id^=answer]").click(function(e){
e.preventDefault();
$("div#subMessages-"+$(this).attr("id").split("answer-")[1]).fadeToggle();
});
<强> DEMO 强>
答案 3 :(得分:1)
看起来在showHideLayer
函数的id末尾有一个单引号太多。
替换此......
onclick=\"showHideLayer('subMessages-".$i."'')\"
......有了......
onclick=\"showHideLayer('subMessages-".$i."')\"
已编辑说实话,我之前没有看到这个,只是复制了你的代码,但事实上,onclick
错过了代码c
。感谢@Henriksjodahl首先发现这一点的人。
答案 4 :(得分:0)
因为您正在使用JQuery,请尝试以下操作:
$(docuemnt).ready(function(){
// if a link of class myclass is clicked this action is triggerd
$("a.myclass").click(function(){
e.preventDefault();// prevent default action
var submsgid = "subMessages"+$(this).attr("id").split("answer-")[1];
$("div#"+submsgid).fadeToggle();
});
});
尽量避免混合(&#34;)和(&#39;)。这可能看起来更干净:
// your php code
?>
<a id="answer-<?php echo $i;?>" class="myclass" href="#">
<b><?php echo count($ansPostId); ?></b> Antworten
</a>
<br>
<div id="subMessages<?php echo $i; ?>" style="display: none;">
message
</div>
<?php
// your php code