我发生了一件非常奇怪的事情。我以前从未见过这个。我对jQuery / Javascript不是很了解,但对于我未经训练的眼睛,这看起来很疯狂......
如果没有alert('hello')
功能下的$(document).ready
,ID-begin-with选择器不会触发(即,不会警告“再见”)。如果我在alert('hello')
函数下方添加$(document).ready)
,则会突然显示alert('goodbye')
个字词。
这怎么可能?
<script type="text/javascript">
$(document).ready(function(){
alert('hello');
$('a[id^="hash-"]').click(function(e){
e.preventDefault();
alert('goodbye');
});
});
</script>
我也试过.on():
<script type="text/javascript">
$(document).ready(function(){
alert('hello');
$('a[id^="hash-"]').on('click', function(e){
e.preventDefault();
alert('goodbye');
});
});
</script>
HTML元素最初是在页面加载时添加的,但如果您过滤了bootgrid表,则可以更改HTML元素,因此我按照评论中的建议将其更改为.on()
。
<td>
<a id="hash-1" href="#" data-row-id="1">
<i class="zmdi zmdi-arrow-left-bottom" title="Select this site"></i>
</a>
</td>
然后我尝试了这个(因为图标所在的原始<td>
也是动态创建的):
$(document).on('click', 'a[id^="hash-"]', function(e){
e.preventDefault();
alert('goodbye');
});
也不成功......
非常感谢任何帮助。
答案 0 :(得分:-3)
这对我来说很好。
$(document).on('click','a[id^="hash-"]',function(e){
e.preventDefault();
alert('goodbye' + $(this).text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a id="hash-1">1</a>
<a id="hash-2">2</a>
<a id="hash-3">3</a>
<a id="hash-4">4</a>