Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript <;span>;jQuery.click()不工作_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript <;span>;jQuery.click()不工作

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中创建了一个delete“button”,但由于某些原因,我无法启动.click()。有什么想法吗?我是jQuery新手,我认为这是显而易见的。我在Chrome和Safari中进行了测试,但运气不佳

CSS:

HTML/PHP:

<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*/
});