>我有两个功能点击和直播。我想将参数从单击传递到实时。我尝试了下面这样的东西,但它不起作用。
jQuery(document).ready(function(){
var test = 'test' ;
jQuery('.item a').click(test);//pass an argument from here
});
jQuery('.item a').live('click',function(e,test) {
alert(test);//access argument here
});
这可能吗?
更新:
function init() {
//When you click on a link
jQuery('.item a').live('click',function(e,test) {
alert(test);
});
}
jQuery(document).ready(init);
jQuery(document).ready(function(){
var test= 'test';
jQuery('.item a').trigger('click', test);
});
我期待警报。
编辑2:
jQuery(document).ready(function(){
(function($){
$('.item').each(function() {
$(this)[0].oncontextmenu = function() { return false }
});
$.fn.ctrl = function(key, callback) {
if(typeof key != 'object') key = [key];
callback = callback || function(){ return false; }
return $(this).keydown(function(e) {
var ret = true;
$.each(key,function(i,k){
if(e.keyCode == k.toUpperCase().charCodeAt(0) && e.ctrlKey) {
ret = callback(e);
}
});
return ret;
});
};
$.fn.disableSelection = function() {
$(window).ctrl(['a','s','c']);
return this.each(function() {
$(this).attr('unselectable', 'on')
.css({'-moz-user-select':'none',
'-o-user-select':'none',
'-khtml-user-select':'none',
'-webkit-user-select':'none',
'-ms-user-select':'none',
'user-select':'none'})
.each(function() {
$(this).attr('unselectable','on')
.bind('selectstart',function(){ return false; });
});
});
};
$('.item').disableSelection();
})(jQuery);
});
谢谢。
你可以改用trigger()
,它允许你传递参数;
jQuery(document).ready(function(){
var test = 'test' ;
jQuery('.item a').trigger('click', test); //pass an argument from here
});
jQuery('.item a').live('click',function(e,test) {
alert(test);//access argument here
});
或者您可以使用隐藏字段来存储需要传递的参数,然后在单击函数中读取它
jQuery(document).ready(function(){
var test = 'test' ;
jQuery('#hiddenID').val(test);
jQuery('.item a').click(test);//pass an argument from here
});
jQuery('.item a').live('click',function(e,test) {
var test = jQuery('#hiddenID').val();
alert(test);//access argument here
});
你也可以试试这个
jQuery(document).ready(function(){
var test = 'test' ;
$('.item a').trigger({type:'click', myParam:test}); // pass the event object with param
});
$('.item a').live('click',function(e) {
alert(e.myParam); //access param here
});
另请记住live
已弃用,而是使用 on。
更新:
jQuery(document).ready(function(){
var test= 'test';
$('.item a').trigger({type:'click', myParam:test});
});
$('.item a').live('click',function(e) {
alert(e.myParam); //access param here
});