1

在我的应用程序中,我使用了一个简单的 JavaScript 弹出窗口并以这种方式成功调用它——

<a href="javascript:popup('Hello World')>Click Me</a>

我想知道是否可以在其他 jQuery 事件上调用相同的弹出窗口。例如

    $("#some_button_id").click( function() {

        javascript:popup('Hello World');

    });  

上述方法无效。还有其他解决方案吗?

4

3 回答 3

1

编辑 - 您不需要该javascript:部分,因为您没有附加 javascript 内联。但这不是错误的原因,因此请确保在附加事件处理程序之前等到 DOM 准备好。

$(function(){
    var popup = function(msg){
        alert(msg);
    }
    $("#some_button_id").click( function() {

        popup('Hello World');

    }); 
});

当然要确保你在popup()某个地方定义

于 2012-04-10T09:56:15.340 回答
1

如果popup您的页面上定义了该功能,那么您应该使用

$("#some_button_id").click( function() {
    popup('Hello World');
});

javascript:仅当您直接在 html 属性中使用 javascript 代码时才需要该前缀。

于 2012-04-10T09:57:01.410 回答
0
 $("#some_button_id").click( function() {

        popup('Hello World');

    });  

应该管用。

编辑

这将确保在事件触发时 id 退出,无论是否在添加侦听器时创建它,它都称为委托:

$(document.body).click( function(e) {
if(e.target.getAttribute("id")=="some_button_id"){
        popup('Hello World');
}
});  
于 2012-04-10T09:55:55.173 回答