Jquery可以';在ajx加载事件中,无法从新div访问原始jquery对象
我有一个页面,其中有一堆JQuery对象。在同一个页面上,我有一个表单,您可以在一系列字段中输入搜索词并单击搜索按钮,然后将AJAX请求发送到服务器,然后将生成的HTML加载到div中。一个非常简单的Jquery应用程序 问题是这个。当您单击通过ajax加载到div中的搜索结果链接时,原始页面上的Jquery代码将不会触发。例如,如果我在原始页面上添加一个名为searchClick()的函数,那么我会在每个Jquery可以';在ajx加载事件中,无法从新div访问原始jquery对象,jquery,ajax,html,Jquery,Ajax,Html,我有一个页面,其中有一堆JQuery对象。在同一个页面上,我有一个表单,您可以在一系列字段中输入搜索词并单击搜索按钮,然后将AJAX请求发送到服务器,然后将生成的HTML加载到div中。一个非常简单的Jquery应用程序 问题是这个。当您单击通过ajax加载到div中的搜索结果链接时,原始页面上的Jquery代码将不会触发。例如,如果我在原始页面上添加一个名为searchClick()的函数,那么我会在每个 单击上面示例中的链接将产生searchClick()未定义错误。 有人有什么建议吗?谢
单击上面示例中的链接将产生searchClick()未定义错误。
有人有什么建议吗?谢谢大家! 一开始会让您的生活更轻松,因为您不必自己添加onclick处理程序。相反,您可以绑定一个事件处理程序,该事件处理程序也将应用于后来添加到DOM中的元素(例如通过AJAX调用)
至于你的问题,我没有解释。尝试使用Firebug之类的工具监视html源代码和DOM结构
$("#search").live("click", function()
{
var description = urlencode($("#description").val());
var manufacturer = urlencode($("#manufacturer").val());
var product = urlencode($("#product").val());
var category = urlencode($("#category").val());
var subcategory = urlencode($("#subcategory").val());
$.ajax
({
type: "GET",
url: "/productSearch.php",
data: 'description=' + description + '&product=' + product + '&category=' + category +"&subcategory=" + subcategory,
success: function(result)
{
$("#search_result").html(result);
}
});
});
使用事件添加新元素时,新元素仍会对事件作出反应。
不要使用
<a href="#" onclick="s**earchClick("some value")"**>Product 1</a>
这是糟糕的形式
<a href="#" onclick="s**earchClick("some value")"**>Product 1</a>
$("#search").live("click", function()
{
var description = urlencode($("#description").val());
var manufacturer = urlencode($("#manufacturer").val());
var product = urlencode($("#product").val());
var category = urlencode($("#category").val());
var subcategory = urlencode($("#subcategory").val());
$.ajax
({
type: "GET",
url: "/productSearch.php",
data: 'description=' + description + '&product=' + product + '&category=' + category +"&subcategory=" + subcategory,
success: function(result)
{
$("#search_result").html(result);
}
});
});
<a href="#" onclick="s**earchClick("some value")"**>Product 1</a>