-1

我使用 PHP curl 将数据发送到侦听端口并将数据输出到屏幕上,效果很好。这是我发送的数据:

$arr = array("message" => "<u>".$abc."</u> at <u>".$currentDate."</u> || <a href=#>Call</a> || <a href=#>SMS</a> || <u class='caller'>N/A</u>");
$msgString = json_encode($arr);
$ch = curl_init('http://localhost:8123/message');
curl_setopt($ch,
            CURLOPT_CUSTOMREQUEST,
            "POST");
curl_setopt($ch,
            CURLOPT_POSTFIELDS,
            $msgString);                                                          
curl_setopt($ch,
            CURLOPT_RETURNTRANSFER,
            true);                                                              
curl_setopt($ch,
            CURLOPT_HTTPHEADER,
            array('Content-Type:application/json',
                  'Content-Length:' . strlen($msgString)));
$result = curl_exec($ch);

这是完美的工作。然后我使用 Chrome 观看元素。所有元素都可以。 在此处输入图像描述 接下来我使用 jQuery 绑定它们的点击功能,但我无法触发它们。

//alert("123");
$('.caller').on("click", function(){
  console.log("11");
});

PS:代码在外部 js 文件中,我在主文件中正确包含 jquery 库。我使用警报进行测试并且它有效。
我认为问题是js代码。不知道为什么不能触发点击事件。有人能告诉我为什么吗?谢谢!

4

3 回答 3

1

尝试使用直接和委托事件

$(document).on("click", '.caller', function(){
  console.log("11");
});

更好的选择是传递您不动态更新的 .caller 的父元素的选择器。

于 2013-07-15T11:13:31.477 回答
0

您在哪里找到附加处理程序的函数:?

$('.caller').on("click", function(){
     console.log("11");
});

如果这被调用$(document).ready或等效,那么它只会附加到已经创建.caller的元素- 它不会附加到将来创建的元素。为此,您需要在每次将新元素添加到 DOM 时再次调用该函数。.caller

于 2013-07-15T11:14:49.590 回答
0

尝试这个

jQuery(document).on("click",".caller",function() {
console.log("11")
});
于 2013-07-15T11:13:44.150 回答