JavaScriptの関数に動的IDを挿入する際に問題があります:コード:
$('#scroll-up1, #scroll-down1').bind({ ..............
この例では、関数全体に送信するidの値を取得する関数が必要です
$('#scroll-up+id, #scroll-down+id').bind({ ..............
「または」として引用符で囲まれている問題は、私には機能せず、関数に正しく使用できません。このスクリプトでは、テキストをスクロールできますが、関数のIDから直接値を送信できないため、これにのみ問題があります。 。
すべてのコードを入力するために私のために編集してください:....。
PHP AND HTML CODE
<?php
$fil_comments=file("comments.txt");
for ($i=0;$i<sizeof($fil_comments);$i++)
{
$line=explode("~",$fil_comments[$i]);
if ($i%2==0)
{
$back=1;
}
else
{
$back=2;
}
?>
<li>
<div id="web_comment_<?php echo $back?>">
<div id="web_comment_name"><?php echo $line[0];?></div>
<div class="web_comment_texto" id="scroll<?php echo $i;?>"><?php echo $line[1];?></div>
<div class="web_comment_arrow" style="margin-left:260px;" id="scroll-down<?php echo $i;?>"><img src="imagenes/comments/arrow_up.png"></div>
<div class="web_comment_arrow" style="margin-left:288px;" id="scroll-up<?php echo $i;?>"><img src="imagenes/comments/arrow_down.png"></div>
</div>
</li>
<script>
scroll_diver(<?php echo $i;?>);
</script>
<?
}
?>
JavaScriptコードの機能
<script type="text/javascript">
function scroll_diver(id)
{
$(function() {
var ele = $('#scroll'+id);
var speed = 30, scroll = 5, scrolling;
$('#scroll-up'+id).mouseenter(function() {
// Scroll the element up
scrolling = window.setInterval(function() {
ele.scrollTop( ele.scrollTop() - scroll );
}, speed);
});
$('#scroll-down'+id).mouseenter(function() {
// Scroll the element down
scrolling = window.setInterval(function() {
ele.scrollTop( ele.scrollTop() + scroll );
}, speed);
});
//var a='#scroll-up'+id;
//var b='#scroll-down'+id;
var a='#scroll-up'+id;
var b='#scroll-down'+id;
//$('a,b').bind({
//$('#scroll-up1, #scroll-down1').bind({
//$('#scroll-up'+id+',#scroll-down'+id)
///ここに問題があります!!!
$('#scroll-up'+id+', #scroll-down '+id).bind({
click: function(e) {
// Prevent the default click action
e.preventDefault();
},
mouseleave: function() {
if (scrolling) {
window.clearInterval(scrolling);
scrolling = false;
}
}
});
});
}
</script>
基本的に、send idのJavaScript関数の行にある問題です。PHPコードを見ると、情報を含むスクロールのヒントを作成するためにbucleを使用し、それぞれで彼のコンテンツをスクロールできます。このために、関数をbucleに呼び出します。と:
<script>
scroll_diver(<?php echo $i;?>);
</script>
しかし、この行では、正常に動作するための正しい情報を送信しません。特定のIDにbucleを使用すると、正常に動作します。これは正常に動作しますが、上下にすばやくスクロールし、コントロールは正常に動作しません。