因此,我有几个带有onclick函数的“框”:
<div class="box" onclick="load(1);return false;"></div>
<div class="box" onclick="load(2);return false;"></div>onclick函数触发一个函数,该函数读取几个独立的.php文件(example1.php和example2.php)的内容。这些文件包含用字段集而不是div制作的其他框。
function load(num){
$("#loadthis").load("example"+num+".php");
}上面的函数改变了下面这个div的内容:
<div id="loadthis">Load my fieldset boxes</div>到目前为止,一切都正常,直到我单击字段集框。
当我单击它时,字段集的背景色应该改变,并且应该选择字段集中的收音机(因为css样式),但这两种情况都不会发生。但是,我仍然可以选择收音机时,点击收音机(不是框)。
我已经在IE和Chrome中测试过它,这段代码大部分时间都在那里工作。但在firefox中,我无法在50%的时间内选择字段集框。
我试着用.on(上课,但它给我同样的效果)做实验。
$('fieldset.type-a').children('.row').children('.box.col-4').on("click", load);
function load(){
var index = $('fieldset.type-a').children('.row').children('.box.col-4').index( this );
index+=1;
$("#loadthis").load("fs"+index+".php");
}好的,经过一些搜索后,我发现在一个不同的.js文件中已经有一个onclick函数被调用:
function handleStep2() {
$('.step-form-2 input[type=radio]').change(function () {
$(this).closest('fieldset').find('.box').removeClass('active');
$(this).closest('.box').addClass('active');
$(this).attr('checked', 'checked');
});
$('.step-form-2 .select-box .box').click(function () {
$(this).find('input[type=radio]').trigger('change');
});
}现在,我将尝试合并这些代码,看看这样做是否消除了bug,并且没有在单击时激活active类。
解决了:,我通过将这两个代码合并为1 click函数来解决这个问题。谢谢你们的帮助,但我还是不知道能不能换个办法?
发布于 2016-01-14 23:17:43
查看事件委托,如果您使用的是jQuery,这很容易
查看jQuery API for .on(
另外,您希望确保您使用的是不引人注目的JS,所以从HTML中取出它,将它作为事件侦听器放在一个.js文件中,并在DOM加载为关闭</body>标记之前的最后一件事情之后加载脚本。
https://stackoverflow.com/questions/34801366
复制相似问题