Javascript <;span>;jQuery.click()不工作
因此,我在span中创建了一个delete“button”,但由于某些原因,我无法启动.click()。有什么想法吗?我是jQuery新手,我认为这是显而易见的。我在Chrome和Safari中进行了测试,但运气不佳 CSS: HTML/PHP:Javascript <;span>;jQuery.click()不工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我在span中创建了一个delete“button”,但由于某些原因,我无法启动.click()。有什么想法吗?我是jQuery新手,我认为这是显而易见的。我在Chrome和Safari中进行了测试,但运气不佳 CSS: HTML/PHP: <span class="delete_button" id="delete_<? echo $some_id; ?>">X</span> 使用 因为跨度是动态添加的,所以在DOM就绪或页面加载时它不存在 所以你必
<span class="delete_button" id="delete_<? echo $some_id; ?>">X</span>
使用
因为跨度是动态添加的,所以在DOM就绪或页面加载时它不存在
所以你必须使用
语法
$( elements ).on( events, selector, data, handler );
像这样
$(document).on('click','.delete_button',function(){
// code here
});
或
您的代码变为
$(document).ready(function () {
$(document).on('click', '.delete_button', function () {
var transaction_id = $(this).attr('id').replace('delete_', '');
alert("Delete transaction #" + transaction_id);
return false;
});
});
似乎跨度是动态创建的,您需要使用事件委派。将其绑定到最近的静态父级或文档
$(document).on('click','.delete_button',function(){
/*Your code*/
});
对于旧的webkit有一个更简单的解决方案:通过CSS为跨度设置光标到指针。
已测试并正在使用音乐web应用程序。是否动态添加它们?不确定为什么每个人都认为他在动态添加按钮。。。它里面有PHP,所以它可能不是…@HamzaKubba是的,你可以在那里看到2个答案。可能是每天出现类似问题的频率:)如果不是的话,答案应该没有任何问题。@HamzaKubba因为代码是正确的,并且使用动态id,最有可能的是delete_1,2,3,4@CharlesHarrison:在此行之前添加警报:
$('.delete_按钮')。单击(函数(){
查看该代码是否正在运行。谢谢!注意:使用$(文档)。在('click','.delete_按钮',函数(事件){还将允许您使用event.preventDefault()>$('parentElementPresesStatdOMReady')。在('click','delete_按钮',delete_按钮',delegate);这对我来说很好。然后我将其简化为另一种jQuery语法,只是为了我喜欢的语法:$('parentElementPresesStatdOMReady')。查找('delete_按钮')。单击(delegate)嘿,这真的帮了我很大的忙!这是我第一次完全理解为什么动态添加的元素不能与$('#foo')一起工作。在('click',…)
。现在我明白了:)非常感谢,这有什么关系?问题是关于单击,而不是光标的外观。欢迎使用堆栈溢出!不幸的是,我不认为这是问题所要求的-问题在于事件是否被触发,而不是光标的样式。
$('parentElementPresesntAtDOMready').on('click','.delete_button',function(){
// code here
});
$(document).ready(function () {
$(document).on('click', '.delete_button', function () {
var transaction_id = $(this).attr('id').replace('delete_', '');
alert("Delete transaction #" + transaction_id);
return false;
});
});
$(document).on('click','.delete_button',function(){
/*Your code*/
});