例如,在我的管理页面,即仪表板侧:
//This is hidden until search results come back
//which will be inserted as innerHTML within #searchResults
<div id="hideShow">
<h2>Search Results</h2>
<div id="searchResults"></div>
</div>
//This is visible all the time
<div><form>some fields etc</form><button id="buttonSearch"></div>
然后:
//javascript file start
jQuery(document).ready(function($)
{
jQuery("#hideShow").hide();
jQuery("#buttonSearch").click(function()
{
jQuery.post(ajax_object.ajax_url, data, function(response)
{
//response is json array, I loop through and it becomes:
( contents of response :
<tr><td><a id="edit">Edit</a> | <a onclick="haha()">Delete</a></td></tr> )
document.getElementById("searchResults").innerHTML = response;
jQuery("#hideShow").show();
}
}
}
jQuery("#edit").click(function()
{
alert(\'inside edit\');
}
function haha()
{
alert(\'im haha\');
}
//javascript file end
我必须键入一个简化版本,这样就忽略了拼写错误等,这是一个有效的代码。问题是两者
<a id="edit">Edit</a> | <a onclick="haha()">Delete</a>
输出为innerHTML和常规JS函数,哈哈,但“编辑”不起作用。我尝试了innerHTML内外的各种位置,只要它在innerHTML jQuery之外,“编辑”起作用,但在里面就不行了。
我可以找到一个解决方法,但它是应该工作的,还是每当您以innerHTML的形式输出某个内容时,jQuery都看不到它?因为在查看页面源代码时,innerHMTL不可见。