有两个简单的htmls,点击第一个html中的任何href,重定向到第二个html并在类'clazz'的所有obj上执行某些操作:
首先是html:
<body>
<a class="link" id="1" href="display.html" >flower 1</a>
<a class="link" id="2" href="display.html" >flower 2</a>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script src="js/script.js"></script>
</body>
第二
<body>
<img class ="clazz" id="1" src="https://">
<img class ="clazz" id="2" src="https://">
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script src="js/script.js"></script>
</body>
JS:
$(document).ready(function() {
$('.link').on('click', function( event )
{
$(".clazz").each(function() {
alert("hey");
});
});
});
虽然代码很简单但有些奇怪的事情发生了...... 从不调用.each on clazz。当将.each部分移出link.onClick时 - 它会显示警报,所以我认为问题不是js中第二个html的无法识别的类'clazz'。还有什么呢?
答案 0 :(得分:1)
如果您只想在链接点击时执行代码而不是默认链接操作(即“转到另一个页面”),您需要添加一行代码 - 调用{{1 }}
preventDefault()
答案 1 :(得分:1)
即使您在js/script.js
中都有相同的javascript文件html
。
每个页面/ html请求将以不同方式调用每个javascript文件。
在你的第一个HTML中
a.link
将在click
上调用,但没有a.class
。
`a.class === undefined` //in your 1st html
在第二个HTML中
您有a.class
,但没有a.link
。因此,第二个html中的javascript无法在click
上注册a.link
个事件。
`a.link === undefined` //in your 2nd html