onclick没有调用JS函数(在任何浏览器上)

时间:2013-10-12 10:04:09

标签: javascript jquery

示例:

<button id="banButton{$id}"onclick="deletePhoto({$id}, {$picture_path});">BAN {$id}</button>

</body>标记之前:

<script type="text/javascript" src="../profile/theme/js/jquery.js"></script>

<script type="text/javascript">

function deletePhoto(id, pic_path) {
    alert("test");
    $.post("ajax.php", { toid: toid, pic_path: pic_path });
}

$(document).ready(function() {
    alert("test2");

});


</script>

呈现的HTML可能如下所示:

<button id="banButton508" onclick="deletePhoto(508, profile_photos/686733/1_4044.jpg);">BAN 508</button> <img src="../profile/pics/686725/2_3234.jpg" width="150" height="150"/>

&#34; test2&#34;加载页面时会显示警报,但是当点击按钮时,该功能不会运行(警报甚至不会显示)。

知道为什么吗?

编辑:我现在已将picture_path包装在引号中,例如

<button id="banButton{$id}" class="banButton" onclick="deletePhoto({$id}, "{$picture_path}");">BAN {$id}</button>

仍然没有解决这个问题。

4 个答案:

答案 0 :(得分:1)

看起来picture_path是一个字符串文字,如果''值也是一个字符串,那么也将其括在id中,然后同样执行该操作

<button id="banButton{$id}" onclick="deletePhoto('{$id}', '{$picture_path}');">BAN {$id}</button>

答案 1 :(得分:0)

尝试将您的功能放在文档就绪功能中以及其他所有功能。

$(document).ready(function(){
function deletePhoto(id, pic_path) {
    alert("test");
    $.post("ajax.php", { toid: toid, pic_path: pic_path });
}
});

答案 2 :(得分:0)

以下代码工作正常

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>Test</title>
  </head>

<body>

<button id="banButton508" onclick="deletePhoto(508, 'profile_photos/686733/1_4044.jpg');">BAN 508</button> <img src="../profile/pics/686725/2_3234.jpg" width="150" height="150"/>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js "></script>

<script type="text/javascript">

function deletePhoto(id, pic_path) {
alert("test"+pic_path);
$.post("ajax.php", { toid: toid, pic_path: pic_path });
}

$(document).ready(function() {
  alert("test2");

});


</script>
 </body>

答案 3 :(得分:0)

如果您正在使用jquery,那么为什么不应该以标准形式操作dom-aciton。

<button id="banButton{id}" data-id="{id}" data-image_url="{$picture_path}">BAN {id}</button>

和javascript

function deletePhoto(id, pic_path) {
    alert("test");
    $.post("ajax.php", { toid: toid, pic_path: pic_path });
}

$(document).ready(function() {
    alert("test2");

    $("button[id^='banButton']").click(function(){
        var id = $(this).data('id');
        var img_url = $(this).data('image_url');

        deletePhoto(id, img_url);
    });

});