2

将创建许多具有唯一 div id 的此类 div,当我单击单击我时,它应该显示该 productid 的警报,我正在这样做

<div id="xyz{productid}">
    Click Me
</div>
.....
<script type="text/javascript">
    var uuid="{productid}"
</script>
<script src="file1.js">

来自 file1.js 的代码

$(function () {
    var d = "#xyz" + uuid;
    $(d).click(function () {
        alert("Hello" + uuid);
        return false;
    });
    alert(d);
});

所以代码也可以,但它的基本问题是,因为我是在我们有产品数量的类别页面上做的,这个函数只绑定到最后一个产品图块,我希望它只绑定到那个特定的 div它被称为

................................得到了一个解决方案抱歉回复晚了,是在周末假期,但我按班级类型解决了体系结构,我们在页面上的每个图块创建一个对象,并且在页面加载时我们初始化其所有类变量,因此您可以获得单独的 div id,并且在将函数绑定到它时,仍然可以使用其类变量中的数据,我在这里发布我的代码,所以如果有人想要可以使用它,

UniqeDiv= new function()
{   
var _this = this;   
var _divParams = null;
var _uuid=null;
//constructor   
new function(){     

//$(document).bind("ready", initialize);

//$(window).bind("unload", dispose);


_uuid=pUUID;

initialize();

$('#abcd_'+_uuid).bind("click",showRatingsMe)

dispose();


}

function initialize(){

}
function showRatingsMe(){       
    alert(_uuid);       
}   
function dispose(){ 
    _this = _divParams = null
}
}
//In a target file, im including this js file as below
<script type="text/javascript">
    var pUUID="${uuid}";        
</script>
<script type="text/javascript" src="http://localhost:8080/..../abc.js"></script>
4

3 回答 3

2

您可以使用带有以通配符开头的属性选择器和jQuery on()来为动态添加的元素绑定点击事件。

$(document).on("click", "[id^=xyz]", function(){
   //your code here
   alert("Hello"+this.id);
   return false;
});
于 2013-07-12T13:12:09.887 回答
0

您可以使用

$("[id*='divid_']").click(function(){ });

但为此,您需要确保所有 div ID 都以“divid_”开头。

于 2013-07-12T13:44:33.253 回答
0

我会为您的每个动态 div 添加一个类,以便它们更易于查询。在下面的示例中,我使用该类dynamic来标记动态添加的 div,并且应该应用此单击侦听器。

要附加事件,您可以使用带有 jQ​​uery 的on()函数的委托事件。委托事件将为 DOM 中的当前和未来元素触发:

$(function() {  
    var d="#xyz"+uuid;
    $(document).on('click', 'div.dynamic', function() {
        alert("Hello"+uuid);
        return false;
    });     
});

您可以在此处阅读有关事件委托的更多信息。

于 2013-07-12T13:13:12.350 回答