如何将代码中的循环创建的Javascript函数组合到一个函数中,这样我就不会';你不必重复吗?

如何将代码中的循环创建的Javascript函数组合到一个函数中,这样我就不会';你不必重复吗?,javascript,php,jquery,iframe,Javascript,Php,Jquery,Iframe,如何在jquery中运行变量以链接php中的foreach查询 我有一个页面,上面有许多图片,它们是iFrame的占位符。单击rsPlayBtn div时,图像将替换为iframe。我能想到的唯一方法是增加id&class($counter),然后为每个id&class($counter)创建一个jquery函数。这似乎是一种非常低效的方法,而且图像/iFrame的数量将是可变的,因此使用这种方法,我必须创建一个不会每次使用的变量负载。我怎样才能将我所做的合并到一个函数中,这样我就不必重复了 e

如何在jquery中运行变量以链接php中的foreach查询

我有一个页面,上面有许多图片,它们是iFrame的占位符。单击rsPlayBtn div时,图像将替换为iframe。我能想到的唯一方法是增加id&class($counter),然后为每个id&class($counter)创建一个jquery函数。这似乎是一种非常低效的方法,而且图像/iFrame的数量将是可变的,因此使用这种方法,我必须创建一个不会每次使用的变量负载。我怎样才能将我所做的合并到一个函数中,这样我就不必重复了

echo "<div class='rsBtnCenterer' id='{$counter}'><div class='rsPlayBtn'>.";
echo "<img class='{$counter}'..."; 

--------

$('#1').click(function(){
var video = '<iframe src="'+ $('.1').attr('data-video') +'"></iframe>';
$('#1').hide();
$('.1').replaceWith(video);
});

$('#4').click(function(){
var video = '<iframe src="'+ $('.4').attr('data-video') +'"></iframe>';
$('#4').hide();
$('.4').replaceWith(video);
});
echo';
回声“;
$('#1').hide();
$('.1')。替换为(视频);
});
$('#4')。单击(函数(){
var视频=“”;
$('#4').hide();
$('.4')。替换为(视频);
});

我不太清楚你的问题是什么。我假设最后一个问题是关于你的问题:

如何将我在一个函数中所做的工作组合起来,这样就不必重复?

在我看来,您使用class和id的效率很低

echo "<div class='rsPlayBtn' id='{$counter}_btn'>";
echo "<img id='{$counter}_img'..."; 


$('.rsPlayBtn').click(function(event){
  var counter = event.target.id.substring(0,1);
  var video = '<iframe src="'+ $("#" + counter + "_img").attr('data-video') +'"></iframe>';
  $("#" + counter + "_btn").hide();
  $("#" + counter + "_img").replaceWith(video);
});
echo”“;
回声“;
$(“#”+计数器+“#btn”).hide();
$(“#”+计数器+“#img”)。替换为(视频);
});
像这样,您不需要为每个按钮创建单独的函数。jQuery使用“rsPlayBtn”类找到所有按钮。您可以使用event.target属性获取计数器。其余代码与插入计数器的代码相同

此外,如果希望以单个元素为目标,则应避免使用class属性。始终使用id属性,这样会更快。这部分是坏习惯,看我怎么改的

echo "<img class='{$counter}'..."; 

echo“你说‘显然必须有更好的方法去做’。试着说出应该改进什么,以及在进行改进时遇到什么问题。要求改进的内容太广泛了。谢谢,我已经稍微更新了这个问题。可能的重复:谢谢-这已经到了我要做的事情的要点。我已经尝试过了,但不幸的是,它似乎不起作用。如果你发布一些错误消息或其他有用的信息,我或其他人可以帮助你更多。有一个错误,但它是我犯的。我在这里创建了一个JSFIDLE(它也不起作用)来尝试解决这个问题。感谢您的帮助您知道如何调试javascript吗?这真的很简单。只需在代码中的某个地方添加一行代码,当调试器窗口打开时,浏览器将自动命中断点。在浏览器中按F12键可打开调试器窗口。F12窗口在调试器代码处停止后,您可以单步执行代码并查看变量的值。我犯了一个错误,我已经找到了,我会在一个小时后把它寄出去,看看你能不能自己找到它,直到那时。:)对于iframe,它是一个未定义的src-为什么我不知道